SHOW [FULL] PROCESSLIST
SHOW PROCESSLIST显示正在运行的线程。如果有 PROCESS特权,则可以看到所有线程。否则,只能看到自己的线程(即与您正在使用的MySQL帐户关联的线程)。如果不使用FULL关键字,那么该Info字段中仅显示每个语句的前100个字符 。
SHOW PROCESSLIST如果收到“ 太多的连接 ” 错误消息并想了解发生了什么, 该语句将非常有用。MySQL保留一个额外的连接,供具有CONNECTION_ADMIN或 SUPER特权的帐户使用,以确保管理员应始终能够连接并检查系统(假设您未将此特权授予所有用户)。
可以使用该KILL语句杀死线程 。
mysql> SHOW PROCESSLIST;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+-------+------------------+
| 4 | root | localhost | NULL | Query | 0 | NULL | SHOW PROCESSLIST |
+----+------+-----------+------+---------+------+-------+------------------+
1 row in set (0.00 sec)
SHOW PROCESSLIST 各个列含义:
- Id
连接标识符。这与INFORMATION_SCHEMA PROCESSLIST表的ID列、性能模式threads表的PROCESSLIST_ID列以及CONNECTION_ID()函数返回的值类型相同。
- User
发出该语句的MySQL用户。值表示 system user服务器产生的非客户端线程,以在内部处理任务。
- Host
发出该语句的客户端的主机名(除了system user,没有主机)。TCP / IP连接的主机名以 格式报告, 以便更轻松地确定哪个客户端在做什么。
- db
默认数据库(如果已选择);否则 NULL。
- Command
线程正在执行的命令的类型。该列的值对应于 客户端/服务器协议的 命令和 状态变量。
- Time
线程处于其当前状态的时间(以秒为单位)。对于从属SQL线程,该值是上次复制事件的时间戳与从属计算机的实时之间的秒数。
- State
指示线程正在执行的操作,事件或状态。
大多数状态对应于非常快速的操作。如果线程在给定状态下停留许多秒钟,则可能存在需要调查的问题。
对于SHOW PROCESSLIST 声明中的价值State是 NULL。
- Info
线程正在执行的语句,或者 NULL未执行任何语句的语句。该语句可能是发送到服务器的那条语句,或者是最内部的语句(如果该语句执行其他语句)。例如,如果一条CALL 语句执行了正在执行一条SELECT语句的存储过程,则该 Info值将显示该 SELECT语句。