MySQLの処理を停止させる方法

MySQLで、負荷のかかるクエリなどで処理に時間がかかっている場合などで、その処理を停止させたいということがあります。
このようなときには停止したい処理のプロセスを、KILLコマンドで停止します。

処理中のプロセスの一覧を見るには、PROCESSLISTを使います。

mysql> show processlist;
+-------+--------+-----------------+---------+---------+------+--------------+-----------------------------------+
| Id    | User   | Host            | db      | Command | Time | State        | Info                              |
+-------+--------+-----------------+---------+---------+------+--------------+-----------------------------------+
| 36443 | root   | localhost:57622 | test_db | Query   |   19 | Sending data | UPDATE test_table SET test='aaa'  |
| 36468 | root   | localhost:57467 | test_db | Query   |    0 | NULL         | show processlist                  |
+-------+--------+-----------------+---------+---------+------+--------------+-----------------------------------+
2 rows in set (0.00 sec)

処理を停止させるには、該当するプロセスのIDを指定してKILLコマンドを実行します。
上の例で、UPDATEクエリを停止させるには、このプロセスIDが36443なので次のようにコマンドを実行します。

mysql> KILL 36443;

クエリをSQLファイルで実行した場合は、プロセスを停止させてもSQLファイルに記述されている次のクエリが実行されたりするだけで処理は停止しません。
この場合はWindowsであれば『 Ctrl+C 』、Linuxであれば『 Ctrl+Z 』でSQLファイルの読み込み実行を停止させた後、KILLコマンドでクエリを停止させます。

関連記事

スポンサーリンク

コマンドで雛形を作る CLIツール

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る