概述
文章目录
使用 SHOW 命令查看连接线程
使用 information_schema.processlist
使用 performance_schema.threads
使用 mysqladmin 工具查看连接线程
使用 CONNECTION_ID() 函数查看当前连接
使用 KILL 命令终止线程
使用 mysqladmin 工具终止线程
今天给大家介绍一下如何如何查看和终止(kill)MySQL 的连接线程。
当我们连接 MySQL 服务器遇到“too many connections”这种连接数过多的错误时,或者由于其他原因需要找出目前存在哪些客户端的连接线程,并进一步进行处理。
使用 SHOW 命令查看连接线程
每个MySQL 客户端的连接都对应一个服务器端的线程,使用 SHOW PROCESSLIST 命令可以查看连接线程的详细信息:
mysql> show processlist;
+----+-----------------+--------------------+------+---------+--------+------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------------+--------------------+------+---------+--------+------------------------+------------------+
| 7 | event_scheduler | localhost | NULL | Daemon | 389855 | Waiting on empty queue | NULL |
| 32 | root | localhost | NULL | Query | 0 | starting | show processlist |
| 33 | root | 192.168.56.1:54174 | hrdb | Sleep | 19 | | NULL |
| 34 | root | 192.168.56.1:54175 | hrdb | Sleep | 3 | | NULL |
| 35 | root | 192.168.56.1:54176 | hrdb | Sleep | 3 | | NULL |
+----+-----------------+--------------------+------+---------+--------+------------------------+------------------+
5 rows in set (0.00 sec)
查询结果中每个字段的意义如下:
Id - 连接的唯一标识;
User - 客户端的用户名,event_scheduler 是监控计划事件的线程;
Host - 客户端的主机名和端口号;
db - 默认的数据库,如果没有设置显示为 NULL;
Command - 该线程正在执行的命令类型;
Time - 该线程处于当前状态的秒数;
State - 该线程正在执行的操作、事件或者状态;
Info - 该线程正在执行的语句,NULL 表示没有执行任何语句。show processlist;命令只会显示 Info 字段中的前 100 个字符;如果想全部列出内容,可以使用show full processlist;命令。
如果拥有 PROCESS 权限,可以看到所有用户的连接线程;否则只能看到使用当前用户名连接的线程。
另外,我们也可以使用以下命令查看当前连接的数量:
mysql> show status where variable_name = 'threads_connected';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_connected | 4 |
+-------------------+-------+
1 row in set (0.01 sec)
该命令返回的连接数量只包含用户连接的线程,不包含系统连接的线程。
更多请见:http://www.mark-to-win.com/tutorial/51590.html
最后
以上就是坚定皮卡丘为你收集整理的MySQL 查看和终止正在运行的连接线程的全部内容,希望文章能够帮你解决MySQL 查看和终止正在运行的连接线程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复