iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中怎么查看链接
  • 293
分享到

MySQL中怎么查看链接

2024-04-02 19:04:59 293人浏览 薄情痞子
摘要

今天就跟大家聊聊有关Mysql中怎么查看链接,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.查看数据库链接查看数据库链接最常用的语句就是 show

今天就跟大家聊聊有关Mysql中怎么查看链接,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1.查看数据库链接

查看数据库链接最常用的语句就是 show processlist 了,这条语句可以查看数据库中存在的线程状态。普通用户只可以查看当前用户发起的链接,具有  PROCESS 全局权限的用户则可以查看所有用户的链接。

show processlist 结果中的 Info 字段仅显示每个语句的前 100 个字符,如果需要显示更多信息,可以使用 show full  processlist 。同样的,查看 infORMation_schema.processlist 表也可以看到数据库链接状态信息。

# 普通用户只能看到当前用户发起的链接 mysql> select user(); +--------------------+ | user()             | +--------------------+ | testuser@localhost | +--------------------+ 1 row in set (0.00 sec)  mysql> show grants; +----------------------------------------------------------------------+ | Grants for testuser@%                                                | +----------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'testuser'@'%'                                 | | GRANT SELECT, INSERT, UPDATE, DELETE ON `testdb`.* TO 'testuser'@'%' | +----------------------------------------------------------------------+ 2 rows in set (0.00 sec)  mysql> show processlist; +--------+----------+-----------+--------+---------+------+----------+------------------+ | Id     | User     | Host      | db     | Command | Time | State    | Info             | +--------+----------+-----------+--------+---------+------+----------+------------------+ | 769386 | testuser | localhost | NULL   | Sleep   |  201 |          | NULL             | | 769390 | testuser | localhost | testdb | Query   |    0 | starting | show processlist | +--------+----------+-----------+--------+---------+------+----------+------------------+ 2 rows in set (0.00 sec)  mysql> select * from information_schema.processlist; +--------+----------+-----------+--------+---------+------+-----------+----------------------------------------------+ | ID     | USER     | HOST      | DB     | COMMAND | TIME | STATE     | INFO                                         | +--------+----------+-----------+--------+---------+------+-----------+----------------------------------------------+ | 769386 | testuser | localhost | NULL   | Sleep   |  210 |           | NULL                                         | | 769390 | testuser | localhost | testdb | Query   |    0 | executing | select * from information_schema.processlist | +--------+----------+-----------+--------+---------+------+-----------+----------------------------------------------+ 2 rows in set (0.00 sec)  # 授予了PROCESS权限后,可以看到所有用户的链接 mysql> grant process on *.* to 'testuser'@'%'; Query OK, 0 rows affected (0.01 sec)  mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)  mysql> show grants; +----------------------------------------------------------------------+ | Grants for testuser@%                                                | +----------------------------------------------------------------------+ | GRANT PROCESS ON *.* TO 'testuser'@'%'                               | | GRANT SELECT, INSERT, UPDATE, DELETE ON `testdb`.* TO 'testuser'@'%' | +----------------------------------------------------------------------+ 2 rows in set (0.00 sec)  mysql> show processlist; +--------+----------+--------------------+--------+---------+------+----------+------------------+ | Id     | User     | Host               | db     | Command | Time | State    | Info             | +--------+----------+--------------------+--------+---------+------+----------+------------------+ | 769347 | root     | localhost          | testdb | Sleep   |   53 |          | NULL             | | 769357 | root     | 192.168.85.0:61709 | NULL   | Sleep   |  521 |          | NULL             | | 769386 | testuser | localhost          | NULL   | Sleep   |  406 |          | NULL             | | 769473 | testuser | localhost          | testdb | Query   |    0 | starting | show processlist | +--------+----------+--------------------+--------+---------+------+----------+------------------+ 4 rows in set (0.00 sec)

通过 show processlist  所得结果,我们可以清晰了解各线程链接的详细信息。具体字段含义还是比较容易理解的,下面具体来解释下各个字段代表的意思:

  • Id:就是这个链接的唯一标识,可通过 kill 命令,加上这个Id值将此链接杀掉。

  • User:就是指发起这个链接的用户名。

  • Host:记录了发送请求的客户端的 IP 和 端口号,可以定位到是哪个客户端的哪个进程发送的请求。

  • db:当前执行的命令是在哪一个数据库上。如果没有指定数据库,则该值为 NULL 。

  • Command:是指此刻该线程链接正在执行的命令。

  • Time:表示该线程链接处于当前状态的时间。

  • State:线程的状态,和 Command 对应。

  • Info:记录的是线程执行的具体语句。

当数据库链接数过多时,筛选有用信息又成了一件麻烦事,比如我们只想查某个用户或某个状态的链接。这个时候用 show processlist  则会查找出一些我们不需要的信息,此时使用 information_schema.processlist  进行筛选会变得容易许多,下面展示几个常见筛选需求:

# 只查看某个ID的链接信息 select * from information_schema.processlist where id = 705207;  # 筛选出某个用户的链接 select * from information_schema.processlist where user = 'testuser';  # 筛选出所有非空闲的链接 select * from information_schema.processlist where command != 'Sleep';  # 筛选出空闲时间在600秒以上的链接 select * from information_schema.processlist where command = 'Sleep' and time > 600;  # 筛选出处于某个状态的链接 select * from information_schema.processlist where state = 'Sending data';  # 筛选某个客户端IP的链接 select * from information_schema.processlist where host like '192.168.85.0%';

2.杀掉数据库链接

如果某个数据库链接异常,我们可以通过 kill 语句来杀掉该链接,kill 标准语法是:KILL [CONNECTION | QUERY]  processlist_id;

KILL 允许使用可选的 CONNECTION 或 QUERY 修饰符:

  • KILL CONNECTION 与不含修改符的 KILL 一样,它会终止该 process 相关链接。

  • KILL QUERY 终止链接当前正在执行的语句,但保持链接本身不变。

杀掉链接的能力取决于 SUPER 权限:

  • 如果没有 SUPER 权限,则只能杀掉当前用户发起的链接。

  • 具有 SUPER 权限的用户,可以杀掉所有链接。

遇到突发情况,需要批量杀链接时,可以通过拼接 SQL 得到 kill 语句,然后再执行,这样会方便很多,分享几个可能用到的杀链接的 SQL :

# 杀掉空闲时间在600秒以上的链接,拼接得到kill语句 select concat('KILL ',id,';') from information_schema.`processlist`  where command = 'Sleep' and time > 600;  # 杀掉处于某个状态的链接,拼接得到kill语句 select concat('KILL ',id,';') from information_schema.`processlist`  where state = 'Sending data';  select concat('KILL ',id,';') from information_schema.`processlist`  where state = 'Waiting for table metadata lock';  # 杀掉某个用户发起的链接,拼接得到kill语句 select concat('KILL ',id,';') from information_schema.`processlist`   user = 'testuser';

这里提醒下,kill 语句一定要慎用!特别是此链接执行的是更新语句或表结构变动语句时,杀掉链接可能需要比较长时间的回滚操作。

看完上述内容,你们对MySQL中怎么查看链接有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网数据库频道,感谢大家的支持。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中怎么查看链接

本文链接: https://www.lsjlt.com/news/58722.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中怎么查看链接
    今天就跟大家聊聊有关MySQL中怎么查看链接,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.查看数据库链接查看数据库链接最常用的语句就是 show...
    99+
    2024-04-02
  • mysql怎么查看进程连接
    本篇内容主要讲解“mysql怎么查看进程连接”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql怎么查看进程连接”吧!命令: show processlis...
    99+
    2024-04-02
  • navicat链接名怎么看
    通过 navicat 中左侧面板的“连接”标签或菜单栏中的“连接”,查看连接名称,该名称显示在每个连接下方的括号中,例如:数据库名称 (连接名称),其中连接名称在创建连接时指定。 如何...
    99+
    2024-04-23
    mysql oracle navicat
  • mysql中mediumtext怎么查看
    在MySQL中,可以使用以下方法查看mediumtext字段的内容:方法1:使用SELECT语句和CAST函数```SELE...
    99+
    2023-09-09
    mysql
  • Nginx如何查看并发链接数
    这篇文章主要为大家展示了“Nginx如何查看并发链接数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Nginx如何查看并发链接数”这篇文章吧。一、通过界面查看通过web界面查看时Nginx需要开...
    99+
    2023-06-16
  • link-view.vbs如何查看页面链接
    这篇文章主要介绍了link-view.vbs如何查看页面链接,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码如下:set ws = Creat...
    99+
    2023-06-08
  • Mysql中怎么查看编码
    Mysql中怎么查看编码,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 一、 查看的字符集 show variables like &#...
    99+
    2024-04-02
  • iscsiadm怎么查看链路情况
    要查看iSCSI链路的情况,可以使用iscsiadm命令的`-m session`选项。以下是使用iscsiadm命令查看iSCSI...
    99+
    2023-09-06
    iscsiadm
  • 怎么查看连接mysql的ip地址
    怎么查看连接mysql的ip地址?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!查看连接mysql的ip地址的方法:直接查询...
    99+
    2024-04-02
  • mysql中如何使用左链接查询
    mysql中如何使用左链接查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  我这里所说的主表是指在连接查询里MySQL以哪个表为主进行...
    99+
    2024-04-02
  • mysql怎么查看数据库连接数
    在MySQL中,你可以通过执行特定的SQL查询来查看当前的数据库连接数以及有关连接的各种统计信息。这里有几种方法可以实现: 查看当前...
    99+
    2024-04-02
  • mysql中怎么查看索引
    本篇文章为大家展示了mysql中怎么查看索引,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。SHOW INDEX FROM tbl_name [FROM db_nam...
    99+
    2024-04-02
  • nodeJs中怎么链接Mysql并实现增删改查操作
    本篇文章给大家分享的是有关nodeJs中怎么链接Mysql并实现增删改查操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。nodejs连接My...
    99+
    2024-04-02
  • 怎么快速查找html中的链接
    小编给大家分享一下怎么快速查找html中的链接,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,适合初学前端开发者使用。2、可扩展性:超级文...
    99+
    2023-06-14
  • SQL Serve中怎么链接远程MySQL
    SQL Serve中怎么链接远程MySQL,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、在SQL SERVER服务器上安装MYSQL OD...
    99+
    2024-04-02
  • NodeJS中怎么链接MySql数据库
    今天就跟大家聊聊有关NodeJS中怎么链接MySql数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如下所示://1.用npm命令安装mysql...
    99+
    2024-04-02
  • 怎么用ajax实现预览链接查看内容功能
    本篇内容介绍了“怎么用ajax实现预览链接查看内容功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先先...
    99+
    2024-04-02
  • mysql中怎么查看字符集
    mysql中怎么查看字符集,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。(1) 最简单的修改方法,就是修改mysql的my.ini文件中的...
    99+
    2024-04-02
  • 怎么在mysql中查看时区
    这篇文章给大家介绍怎么在mysql中查看时区,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一.查看数据库时区show variables like'%time_zone';mysql...
    99+
    2023-06-14
  • mysql中怎么查看表状态
    要查看MySQL中表的状态,可以使用以下方法之一: 使用DESCRIBE命令:可以使用DESCRIBE命令来查看表的结构和字段信息...
    99+
    2024-04-09
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作