解鎖「卡住」的MySQL 表:解決「Lock Wait Timeout Exceeded」問題
當遇到「Lock wait timeout Exceeded; try restarted」時在MySQL 中使用InnoDB 表時出現「事務」錯誤,很可能事務已被卡住。以下是修復表並解決卡住事務的方法:
1。識別卡住的交易:
在MySQL 命令列介面或透過phpMyAdmin 執行以下命令:
SHOW PROCESSLIST;
這將顯示正在執行的清單執行緒。尋找執行時間較長或處於「睡眠」狀態的執行緒。對應的線程ID將顯示在“Id”欄中。
2.終止卡住的線程:
一旦識別出卡住的線程,請在命令列介面中使用以下命令終止它:
KILL;
將
3.重新啟動事務(可選):
如果事務仍然處於活動狀態,請重新啟動它以釋放它可能持有的任何鎖定。您可以透過執行以下命令來完成此操作:
START TRANSACTION; COMMIT;
4。刪除索引(如果適用):
如果您之前嘗試刪除受影響表上的索引,但由於鎖定而失敗,請在終止卡住的線程並重新啟動事務後再次嘗試刪除它.
ALTER TABLEDROP INDEX ;
透過執行下列步驟,您可以解鎖卡住的表並解決「超出鎖定等待逾時」錯誤。請記住定期檢查正在運行的線程,以識別並終止任何潛在的卡住事務,以防止將來出現類似問題。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3