解鎖「卡住」的MySQL 表:排除「鎖定等待超時超出」
當遇到「鎖定等待超時超出;嘗試重新啟動」時在MySQL 中使用InnoDB 表時出現「事務」錯誤,很可能交易已被卡住。以下是修復表並解決卡住事務的方法:
1.識別卡住的事務:
在MySQL 命令列介面或透過phpMyAdmin 執行以下命令:
SHOW PROCESSLIST;
這將顯示正在執行的執行緒清單。尋找執行時間較長或處於「睡眠」狀態的執行緒。對應的線程ID將顯示在“Id”欄中。
2.終止卡住的執行緒:
辨識出卡住的執行緒後,在命令列介面中使用以下指令終止它:
KILL <thread_id>;
取代
3.重新啟動交易(可選):
如果交易仍處於活動狀態,請重新啟動它以釋放它可能持有的任何鎖定。您可以透過執行以下命令來完成此操作:
START TRANSACTION; COMMIT;
4.刪除索引(如果適用):
如果您之前嘗試刪除受影響表上的索引但由於鎖定而失敗,請在終止卡住的線程並重新啟動事務後再次嘗試刪除它.
ALTER TABLE <table_name> DROP INDEX <index_name>;
按照以下步驟,您可以解鎖卡住的表並解決“超出鎖定等待超時”錯誤。請記住定期檢查正在運行的線程,以識別並終止任何潛在的卡住事務,以防止將來出現類似問題。
以上是如何修復 MySQL 中的「鎖定等待超時超出」錯誤:解鎖卡住的表的詳細內容。更多資訊請關注PHP中文網其他相關文章!