解決卡住的MySQL 表的「鎖定等待超時超出」
最近出現了一個問題,導致執行不帶WHERE 子句的SQL 更新在擴充表鎖。這導致在嘗試刪除受影響的索引時出現「超出鎖定等待逾時;嘗試重新啟動交易」錯誤。
為了解決這種情況,建議識別並終止任何卡住的事務。這可以透過在 MySQL 命令列介面中使用 SHOW PROCESSLIST 命令檢查正在運行的執行緒來實現。
尋找並殺死卡住的執行緒
執行以下命令指令:
SHOW PROCESSLIST;
要終止卡住的線程,請執行KILL 命令,後面跟著其ID,如圖所示下面:
KILL <thread ID>;
範例
例如,要終止ID 為115的線程,請使用以下命令:
KILL 115;
一旦卡住的線程被終止,表應該被解鎖並且索引刪除操作可以繼續正常情況下。
以上是如何解決MySQL表卡住的「超過鎖定等待逾時」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!