この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
rick No30です。
今回は、MySQLのプロセスの確認方法と負荷が高すぎて止めたいプロセスを強制的に停止するときなどに使用する停止方法の紹介です
環境
MySQL5.0.95
プロセス確認方法
$ mysql -u root
> show processlist;
+——–+——+———–+———————+———+——–+—————-+——————————————————————————————————+
| Id | User | Host | db | Command | Time | State | Info |
+——–+——+———–+———————+———+——–+—————-+——————————————————————————————————+
| 3840 | root | localhost | hoge | Sleep | 105365 | | NULL |
このようなデータが表示されます。
何度か実行して消えないものは常駐しているプロセスか、固まって動かないプロセスとなります。
Id:接続識別子
User:接続しているユーザ名
Host:接続しているホスト名
db:接続しているDB名
Command:状態を表し「Sleep、Query、Kill」このようなステータスが表示されます。
Time:接続時間
State:現状の情報が表示される
Info:SQLが表示される
プロセス強制終了方法
$ mysql -u root
> show processlist;
+——–+——+———–+———————+———+——–+—————-+——————————————————————————————————+
| Id | User | Host | db | Command | Time | State | Info |
+——–+——+———–+———————+———+——–+—————-+——————————————————————————————————+
| 3840 | root | localhost | hoge | Sleep | 105365 | | NULL |
> kill 3840
これで完了
すぐに消える場合もあれば、処理が重い場合、StateがKillになりしばらくかかる場合もあります。