首頁 >資料庫 >mysql教程 >如何修復 MySQL 中的「鎖定等待超時超出」錯誤:解鎖卡住的表

如何修復 MySQL 中的「鎖定等待超時超出」錯誤:解鎖卡住的表

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-19 17:08:03182瀏覽

How to Fix

解鎖「卡住」的MySQL 表:排除「鎖定等待超時超出」

當遇到「鎖定等待超時超出;嘗試重新啟動」時在MySQL 中使用InnoDB 表時出現「事務」錯誤,很可能交易已被卡住。以下是修復表並解決卡住事務的方法:

1.識別卡住的事務:

在MySQL 命令列介面或透過phpMyAdmin 執行以下命令:

SHOW PROCESSLIST;

這將顯示正在執行的執行緒清單。尋找執行時間較長或處於「睡眠」狀態的執行緒。對應的線程ID將顯示在“Id”欄中。

2.終止卡住的執行緒:

辨識出卡住的執行緒後,在命令列介面中使用以下指令終止它:

KILL <thread_id>;

取代;以及卡住執行緒的ID。

3.重新啟動交易(可選):

如果交易仍處於活動狀態,請重新啟動它以釋放它可能持有的任何鎖定。您可以透過執行以下命令來完成此操作:

START TRANSACTION;
COMMIT;

4.刪除索引(如果適用):

如果您之前嘗試刪除受影響表上的索引但由於鎖定而失敗,請在終止卡住的線程並重新啟動事務後再次嘗試刪除它.

ALTER TABLE <table_name> DROP INDEX <index_name>;

按照以下步驟,您可以解鎖卡住的表並解決“超出鎖定等待超時”錯誤。請記住定期檢查正在運行的線程,以識別並終止任何潛在的卡住事務,以防止將來出現類似問題。

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

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