MySQLでSleep状態のコネクションを一気に開放したくなるときってありますよね?(ない
まぁ主にRailsたんが勝手にコネクションプーリング張ってDBの接続数圧迫してしまってるときに減らす目的だが
環境
- MySQLサーバー
手順
まず対象のDBにログインして
select * from information_schema.processlist where Command = "Sleep"
でSleepになっているコネクションを抽出 *をつけているのは本当に殺していいのかの確認
問題なさそうなら
select *,concat('KILL ',id,';') from information_schema.processlist where Command = "Sleep"
を実行 すると
kill xxxxx; kill xxxxx;
のようにkillコマンドがひたすら表示されるのでそれをコピって実行
Sequel Proなら結果を貼り付けて右側の「すべてのクエリを実行」をクリックすれば簡単
再度select * from information_schema.processlist where Command = "Sleep"
を実行して減っているか確認