クエリがMySQLのテーブルをロックしました。テーブルのロックを解除するために、実行中のクエリのセッションをどのように強制終了できますか?
MySQLでアクティブなセッション/プロセスを表示するかどうかわかりません。SSH経由でこれを行うにはどうすればよいですか?
クエリがMySQLのテーブルをロックしました。テーブルのロックを解除するために、実行中のクエリのセッションをどのように強制終了できますか?
MySQLでアクティブなセッション/プロセスを表示するかどうかわかりません。SSH経由でこれを行うにはどうすればよいですか?
PuTTYに移動し、MySQLにログインします。MySQLで以下を実行します。
show processlist;
実行中のすべてのプロセスのリストが表示されます。テーブルをロックしているクエリを見つけることができるでしょう。これは、ロックが解除されるのを待っている他のクエリの束を含む、最も長く実行されているクエリである可能性が高いためです。このクエリのプロセスIDをメモします。
次に、以下を実行します。
kill [PROCESSID];
それはプロセスを殺します。もちろん、開始されたクエリを停止する権限を持つユーザーとしてこれを行う必要があります(したがって、同じユーザーを使用するかroot
、必要な場合は使用してください)。
MySQLコンソールまたはその他のツールを使用してクエリを実行しSHOW PROCESSLIST
、アクティブなクエリを確認します。
そして、クエリkill 123
を実行して、ID123のクエリ/接続を強制終了します。
人間が読めるようにするには、次のコマンドを使用します。
mysql> show processlist\G
次に、上記のいくつかが言ったように、コマンドを使用します:
kill PROCESSID;
例は次のとおりです。
kill 1234;
ここで、1234は、最も多くのリソース/時間を使用しているIDとして表示されたIDでした。ただし、データが破損する可能性があるため、これには注意してください。