MYSQが Too many connections と言うのでQueryをまとめてKillする

MYSQL

Queryの作成をミスって、大量のQueryが溜まってしまうことがあります。MSYQLの接続数上限を超え、以下のエラーが出ます。

mysqli::real_connect(): (HY000/1040): Too many connections

実行中のQuery確認

mysql> show processlist;

上記で実行中のQueryを確認してみると、数百秒経過していないQueryが大量に発生しています。

300秒以上実行しているQueryリスト

mysql -h <HOST> -u <USER> -p -e'SELECT GROUP_CONCAT(ID) FROM information_schema.PROCESSLIST WHERE TIME > 300;'

上記で300秒以上経過しているQueryのプロセスIDがカンマ区切りで帰ってきます。

300秒以上経過しているQueryをまとめてKill

mysqladmin kill <ID>,<ID> -h localhost -u root -p

プロセスIDをコピペし、上記を実行すると数百秒経っても終わっていないQueryをまとめてKillすることができます。

MYSQL