如何終止 MySQL“show processlist”中的所有程序?


藉助“kill”命令,我們能夠終止程序。但是,你需要逐一終止這些程序,因為 MySQL 沒有任何大規模終止命令。

要檢查程序數,請使用“show processlist”

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

更新時間:2019 年 7 月 30 日

超過 4K 次瀏覽

開啟你的職業

透過完成課程獲得認證

開始學習
廣告