無需重新啟動伺服器即可解決 MySQL 表鎖
錯誤「超過鎖定等待逾時;嘗試重新啟動交易」通常被誤解為需要重新啟動伺服器。 但是,即使沒有明確事務,也可能會發生此鎖定問題。讓我們檢查根本原因並提供釋放受影響表的解決方案。
該錯誤表示鎖定阻止了 MySQL UPDATE
語句。 即使沒有啟動事務,MySQL 也可能因為隱式事務或後台程序而保留鎖定。
要解決這個問題,一個直接的(儘管有潛在風險)方法是強制解鎖表:
<code class="language-sql">mysql -u your_user -p</code>
<code class="language-sql">mysql> show open tables where in_use > 0;</code>
這會顯示目前鎖定的表。
<code class="language-sql">mysql> show processlist;</code>
這顯示了活動進程。識別鎖定目標表的進程。
<code class="language-sql">mysql> kill <process_id>;</code>
將 <process_id>
替換為鎖定進程的 ID。
這會強制解鎖表,從而啟用 UPDATE
語句。 至關重要的是,此方法存在資料損壞的風險,並且只能作為解決底層應用程式問題時的臨時解決方案。
以上是如何在不重新啟動伺服器的情況下解鎖鎖定的MySQL表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!