スタックした MySQL テーブルの「ロック待機タイムアウトを超過しました」を解決する
最近、WHERE 句なしで SQL 更新を実行すると問題が発生しました。拡張テーブルロック内。これにより、影響を受けるインデックスを削除しようとすると、「ロック待機タイムアウトを超過しました。トランザクションを再起動してください」エラーが発生しました。
この状況に対処するには、スタックしたトランザクションを特定して終了することをお勧めします。これは、MySQL コマンド ライン インターフェイスで SHOW PROCESSLIST コマンドを使用して実行中のスレッドを調べることで実現できます。
スタック スレッドの検索と強制終了
次を実行します。 command:
SHOW PROCESSLIST;
スタックしたスレッドを終了するには、次に示すように、KILL コマンドの後にその ID を実行します。以下:
KILL <thread ID>;
例
たとえば、ID 115 のスレッドを終了するには、次のコマンドを使用します:
KILL 115;
スタックしたスレッドが終了したら、テーブルのロックが解除され、インデックス削除操作を続行できるようになります。通常です。
以上がスタックした MySQL テーブルの「ロック待機タイムアウトを超過しました」を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。