MySQL での一般的な問題には、「ロック待機タイムアウトを超過しました。トランザクションを再起動してください」エラーが発生することが含まれます。テーブルのインデックスを変更または削除しようとしているとき。このエラーは通常、テーブル内でトランザクションがスタックし、操作が完了できないことを示します。
問題の診断
テーブルのクエリに対する応答が異常に遅い場合は、トランザクションのスタックが疑われるまたは、インデックスの削除が前述のエラー メッセージで失敗した場合。
スタックしたスレッドの特定
デッドロックの原因となっているスレッドを特定するには、MySQL で次のコマンドを実行します。コマンド ライン インターフェイスまたは phpMyAdmin:
SHOW PROCESSLIST;
このコマンドは、ID と実行時間を含むスレッドのリストを表示します。
スタックしたスレッドの終了
過度に時間がかかっているスレッドを特定したら、コマンドラインインターフェイスの KILL コマンドまたは phpMyAdmin の「Kill」ボタンを使用してスレッドを終了できます。
たとえば、スレッドを強制終了するにはID 115、使用:
KILL 115;
このアクションにより、その特定のスレッドの接続が終了します。
問題の解決
スタックしたスレッドを終了した後
追加のヒント
以上が凍結された MySQL テーブルでの「ロック待機タイムアウトを超過しました」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。