ホームページ >データベース >mysql チュートリアル >サーバーを再起動せずにロックされた MySQL テーブルのロックを解除する方法は?

サーバーを再起動せずにロックされた MySQL テーブルのロックを解除する方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-18 13:21:10849ブラウズ

How to Unlock Locked MySQL Tables Without Restarting the Server?

サーバーを再起動せずに MySQL テーブル ロックを解決する

「ロック待機タイムアウトを超えました。トランザクションを再起動してください」というエラーは、サーバーの再起動が必要であると誤解されることがよくあります。 ただし、このロックの問題は、明示的なトランザクションがなくても発生する可能性があります。根本原因を調査し、影響を受けるテーブルを解放するための解決策を提案しましょう。

このエラーは、ロックが MySQL UPDATE ステートメントを妨げていることを示しています。 トランザクションを開始しなくても、MySQL は暗黙的なトランザクションまたはバックグラウンド プロセスによりロックを保持する可能性があります。

これを解決するには、直接的な (潜在的にリスクはありますが) 方法は、テーブルのロックを強制的に解除することです。

  1. MySQL ログイン:
<code class="language-sql">mysql -u your_user -p</code>
  1. ロックされたテーブルの特定:
<code class="language-sql">mysql> show open tables where in_use > 0;</code>

現在ロックされているテーブルが表示されます。

  1. アクティブなプロセスを調べる:
<code class="language-sql">mysql> show processlist;</code>

これはアクティブなプロセスを示します。ターゲットテーブルをロックしているプロセスを特定します。

  1. プロセスを終了します:
<code class="language-sql">mysql> kill <process_id>;</code>

<process_id> をロック プロセスの ID に置き換えます。

これによりテーブルのロックが強制的に解除され、UPDATE ステートメントが有効になります。 重要なのは、この方法にはデータ破損のリスクがあり、アプリケーションの根本的な問題に対処する際の一時的な修正としてのみ使用する必要があります。

以上がサーバーを再起動せずにロックされた MySQL テーブルのロックを解除する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。