show processlist显示正在运行的线程。如果有process权限,则可以查看所有正在运行的线程。否则,只能看到自己的线程。如果不使用full关键字,则只在info字段显示每个语句的前100个字符。
show processlist命令是非常有用的,如果你获得到“too many connections”错误信息,并且想知道什么正在运行。MySQL保留了一个额外的连接给超级管理员。
线程能够被kill掉,使用kill语句。
mysql> show processlist;+----+------+--------------------+-----------+---------+------+-------------+------------------+| Id | User | Host | db | Command | Time | State | Info |+----+------+--------------------+-----------+---------+------+-------------+------------------+| 36 | root | 172.16.100.19:7954 | tpcc_test | Sleep | 456 | | NULL || 37 | root | 172.16.100.19:7969 | tpcc_test | Sleep | 456 | | NULL || 42 | root | localhost | NULL | Query | 0 | System lock | show processlist || 43 | root | 10.0.102.204:49224 | employees | Sleep | 12 | | NULL |+----+------+--------------------+-----------+---------+------+-------------+------------------+4 rows in set (0.00 sec)这个显示的几个字段还是比较好理解的。
ID:连接标识。这个值和INFORMATION_SCHEMA.PROCESSLIST表的ID列,以及PERFORMANCE_SCHEMA中的threads中的process_id值是相同的。user: 发出该语句的MySQL用户。system user是指由服务器生成的用于内部处理任务的非客户端线程。这可以是用于复制的I/O线程,或SQL线程,也可以是延迟的行处理程序。未经身份验证的用户是指已经与客户端连接但尚未对客户端身份进行验证的线程。Host:客户端使用的主机。系统用户没有host值。db:连接的数据库。command:线程执行的命令A thread can have any of the following Command values:Binlog Dump: This is a thread on a master server for sending binary log contents to a slave server.Change user: The thread is executing a change-user operation.Close stmt: The thread is closing a prepared statement.[关闭准备好的