我是靠谱客的博主 坚定皮卡丘,最近开发中收集的这篇文章主要介绍MySQL 查看和终止正在运行的连接线程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

        使用 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 查看和终止正在运行的连接线程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部