MySQL: SHOW PROCESSLIST まとめてプロセス消す


MySQL: SHOW PROCESSLIST まとめてプロセス消すCIのトランザクションがこけてロックがかかったときに
自分のMySQLのプロセスだけを一気に消したくなったので調べた。

ちょっぴり上行く SHOW PROCESSLIST の使い方

↑ここに詳しく書かれている。

SHOW PROCESSLIST;

↑が↓と同じ意味ということなので

SELECT * FROM information_schema.PROCESSLIST;

自分の場合はこんな感じで。

> SELECT group_concat(id) FROM information_schema.PROCESSLIST WHERE User='name';
+--------------------------------------------------------------+
| group_concat(id)                                             |
+--------------------------------------------------------------+
| 508,506,503,502,500,400,399,398,397,372,299,297,279,261,66,2 |
+--------------------------------------------------------------+
1 row in set (0.00 sec)

ワンライナーで消すのにビビったので以下の方法で。
※この方法にする為にgroup_concat()使ったという・・・。

$ mysqladmin kill 508,506,503,502,500,400,399,398,397,372,299,297,279,261,2 -u name -p

参考
プロセスを強制的に停止する(mysqladmin)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です