MYSQが Too many connections と言うのでQueryをまとめてKillする
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することができます。