如何在MySQL“显示进程列表”中杀死所有进程?

我们可以在“ kill”命令的帮助下终止进程。但是,由于MySQL没有任何大量的kill命令,因此您需要一个一个地杀死这些进程。

要检查存在多少个进程,请使用“显示进程列表”

mysql> show processlist;

以下是输出。

+----+-----------------+-----------------+------+---------+------+------------------------+------------------+
| Id | User            | Host            | db   | Command | Time | State                  | Info             |
+----+-----------------+-----------------+------+---------+------+------------------------+------------------+
|  4 | event_scheduler | localhost       | NULL | Daemon  | 7986 | Waiting on empty queue | NULL             |
|  8 | root            | localhost:65180 | test | Query   |    0 | starting               | show processlist |
+----+-----------------+-----------------+------+---------+------+------------------------+------------------+
2 rows in set (0.00 sec)

要杀死一个已激活10秒钟以上的进程,请执行以下查询。在这里,我们正在杀死ID为“ 4”的进程

mysql> select concat('kill ',4,';')
   -> from information_schema.processlist
   ->  where TIME > 10;

这是输出。

+-----------------------+once;

| concat('kill ',4,';') |
+-----------------------+
| kill 4;               |
+-----------------------+
1 row in set (0.00 sec)

作为替代方案,您仍然可以尝试使用以下MySQL查询杀死所有进程。

mysql -e "show full processlist;" -ss | awk '{print "KILL "$1";"}'| mysql