ホームページ >データベース >mysql チュートリアル >「スタック」した MySQL テーブルの「ロック待機タイムアウトを超過しました。トランザクションを再起動してください」を修正する方法は?
「スタック」MySQL テーブルの「ロック待機タイムアウトを超過しました。トランザクションを再起動してください」を修正します
MySQL テーブルが「スタック」になる可能性があります長時間実行されるクエリやコミットされていないトランザクションなど、さまざまな理由が原因です。これに関連する一般的なエラー メッセージの 1 つは、「ロック待機タイムアウトを超過しました。トランザクションを再起動してください。」です。
この問題は、クエリが適切な WHERE 句なしで実行され、すべての列に対して同じ列が繰り返し更新される場合に発生する可能性があります。テーブル内の行。さらに、インデックスの更新が頻繁に行われると、問題がさらに悪化する可能性があります。
この問題を解決してテーブルのフリーズを解除するには、スタックしたトランザクションを特定して終了する必要があります。次の手順を実行できます。
SHOW PROCESSLIST を使用します。コマンドを使用して、MySQL コマンドライン インターフェイスまたは phpMyAdmin で実行中のすべてのスレッドを一覧表示します。実行時間が著しく長いスレッドを特定します。
実行時間が過度に長いスレッドの場合は、KILL コマンドに続いてコマンドを使用します。対応するスレッドID。これにより、そのスレッドの接続が終了します。 phpMyAdmin には、この目的に使用できる便利な「強制終了」ボタンがあります。
からスレッド 115 を強制終了するにはコマンドラインに次のように入力します:
これにより、スタックしたトランザクションが終了し、テーブルのロックが解除され、通常の操作が再開できるようになります。
以上が「スタック」した MySQL テーブルの「ロック待機タイムアウトを超過しました。トランザクションを再起動してください」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。