首頁 >資料庫 >mysql教程 >如何解決MySQL表卡住的「超過鎖定等待逾時」?

如何解決MySQL表卡住的「超過鎖定等待逾時」?

DDD
DDD原創
2024-11-25 03:04:11197瀏覽

How to Resolve

解決卡住的MySQL 表的「鎖定等待超時超出」

最近出現了一個問題,導致執行不帶WHERE 子句的SQL 更新在擴充表鎖。這導致在嘗試刪除受影響的索引時出現「超出鎖定等待逾時;嘗試重新啟動交易」錯誤。

為了解決這種情況,建議識別並終止任何卡住的事務。這可以透過在 MySQL 命令列介面中使用 SHOW PROCESSLIST 命令檢查正在運行的執行緒來實現。

尋找並殺死卡住的執行緒

  1. 連接到使用命令列介面的 MySQL 資料庫。
  2. 執行以下命令指令:

    SHOW PROCESSLIST;
  3. 這將顯示目前正在執行的執行緒及其 ID 和執行時間的清單。
  4. 辨識已執行時間過長的執行緒。
  5. 要終止卡住的線程,請執行KILL 命令,後面跟著其ID,如圖所示下面:

    KILL <thread ID>;

範例

例如,要終止ID 為115的線程,請使用以下命令:

KILL 115;

一旦卡住的線程被終止,表應該被解鎖並且索引刪除操作可以繼續正常情況下。

以上是如何解決MySQL表卡住的「超過鎖定等待逾時」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn