English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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
おすすめ