ホームページ > データベース > mysql チュートリアル > スタックした MySQL テーブルの「ロック待機タイムアウトを超過しました」を解決するにはどうすればよいですか?

スタックした MySQL テーブルの「ロック待機タイムアウトを超過しました」を解決するにはどうすればよいですか?

DDD
リリース: 2024-11-25 03:04:11
オリジナル
194 人が閲覧しました

How to Resolve

スタックした MySQL テーブルの「ロック待機タイムアウトを超過しました」を解決する

最近、WHERE 句なしで SQL 更新を実行すると問題が発生しました。拡張テーブルロック内。これにより、影響を受けるインデックスを削除しようとすると、「ロック待機タイムアウトを超過しました。トランザクションを再起動してください」エラーが発生しました。

この状況に対処するには、スタックしたトランザクションを特定して終了することをお勧めします。これは、MySQL コマンド ライン インターフェイスで SHOW PROCESSLIST コマンドを使用して実行中のスレッドを調べることで実現できます。

スタック スレッドの検索と強制終了

  1. コマンド ライン インターフェイスを使用した MySQL データベース。
  2. 次を実行します。 command:

    SHOW PROCESSLIST;
    ログイン後にコピー
  3. これにより、現在実行中のスレッドのリストが ID と実行時間とともに表示されます。
  4. 長時間実行されているスレッドを特定します。
  5. スタックしたスレッドを終了するには、次に示すように、KILL コマンドの後にその ID を実行します。以下:

    KILL <thread ID>;
    ログイン後にコピー

たとえば、ID 115 のスレッドを終了するには、次のコマンドを使用します:

KILL 115;
ログイン後にコピー

スタックしたスレッドが終了したら、テーブルのロックが解除され、インデックス削除操作を続行できるようになります。通常です。

以上がスタックした MySQL テーブルの「ロック待機タイムアウトを超過しました」を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート