有时,您可能会收到MySQL服务器返回的 “太多连接” 错误。要找出原因,可以使用 SHOW PROCESSLIST
命令。该命令的作用是返回所有当前运行的线程。然后,您可以使用 KILL
语句终止空闲线程,具体语法如下:
SHOW [FULL] PROCESSLIST;
注意
具有 PROCESS
权限的用户才可以查看所有的进程,否则只能查看与其帐户关联的线程。
例如:
show processlist;
+----+-----------------+-----------------+-------+---------+------+------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------------+-----------------+-------+---------+------+------------------------+------------------+
| 5 | event_scheduler | localhost | NULL | Daemon | 481 | Waiting on empty queue | NULL |
| 8 | root | localhost:50607 | mysql | Query | 0 | init | show processlist |
+----+-----------------+-----------------+-------+---------+------+------------------------+------------------+
2 rows in set (0.00 sec)
列头信息含义
字段 | 说明 |
---|---|
Id |
客户端进程的ID |
User |
与线程关联的用户名。 |
Host |
客户端连接的主机 |
DB |
如果另外选择了一个默认数据库 NULL |
Command |
命令类型 |
Time |
当前线程处于当前状态的秒数。 |
State |
线程状态,表示指示正在执行的线程的操作,事件或状态。 |
Info |
语句正在执行,或者NULL如果它没有执行任何语句。 |
提示
SHOW PROCESSLIST
命令中不使用 FULL
关键字,则只在 Info
列中返回每个语句的前100个字符。