如何偵錯 MySQL 中的「Lock wait timeout returned」錯誤?
當 MySQL 日誌中遇到「Lock wait timeout returned」錯誤時,表示交易正在等待用於鎖定資料庫項目。雖然您可能知道哪個查詢正在嘗試存取資料庫,但確定在該精確時刻持有鎖的查詢可能具有挑戰性。
識別罪魁禍首
「事務」一詞的存在錯誤訊息中表明有問題的查詢涉及修改一個或多個 InnoDB 表中的至少一行。由於您有權存取導致錯誤的查詢,因此您可以確定正在存取哪些表,因為它們是潛在的罪魁禍首。
使用SHOW ENGINE INNODB STATUSG
要進一步調查,請執行以下命令命令:
SHOW ENGINE INNODB STATUS\G
這將提供有關鎖定和互斥鎖的信息,包括:
- 受影響的表
- RW共享鎖定自旋
- RW 獨佔鎖自旋
- 互斥鎖自旋等待
- 行鎖資訊
- 撤消日誌條目
範例輸出
例如,來自客戶端的以下輸出說明了這個問題。
Type: InnoDB Name: Status: ===================================== 110514 19:44:14 INNODB MONITOR OUTPUT ===================================== Per second averages calculated from the last 4 seconds ---------- SEMAPHORES ---------- Mutex spin waits 0, rounds 11487096053, OS waits 7756855 RW-shared spins 722142, OS waits 211221; RW-excl spins 787046, OS waits 39353 ------------------------ LATEST FOREIGN KEY ERROR ------------------------ 110507 21:41:35 Transaction: TRANSACTION 0 606162814, ACTIVE 0 sec, process no 29956, OS thread id 1223895360 updating or deleting, thread declared inside InnoDB 499 mysql tables in use 1, locked 1 14 lock struct(s), heap size 3024, 8 row lock(s), undo log entries 1 MySQL thread id 3686635, query id 124164167 10.64.89.145 viget updating DELETE FROM file WHERE file_id in ('6dbafa39-7f00-0001-51f2-412a450be5cc' ) ...
在此輸出中,出現表格「檔案」成為受影響的表,因為 DELETE 查詢正在嘗試修改該表中的行。透過分析輸出,您可以找出導致鎖爭用的特定表。
增加鎖定等待超時
為了避免將來遇到這些錯誤,請考慮增加鎖定等待超時透過設定 innodb_lock_wait_timeout 參數來設定 InnoDB 的值。預設值為 50 秒。
要永久增加超時,請將以下行添加到/etc/my.cnf 檔案中:
[mysqld] innodb_lock_wait_timeout=120
或者,您可以臨時調整超時在當前會話內:
SET innodb_lock_wait_timeout = 120;
增加超時將為等待交易提供更多時間來獲取鎖,從而降低可能性超時錯誤。
以上是如何解決MySQL的「超過鎖定等待逾時」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用MySQL的Alter Table語句修改表,包括添加/刪除列,重命名表/列以及更改列數據類型。

文章討論了為MySQL配置SSL/TLS加密,包括證書生成和驗證。主要問題是使用自簽名證書的安全含義。[角色計數:159]

文章討論了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比較了它們對初學者和高級用戶的功能和適合性。[159個字符]

本文討論了使用Drop Table語句在MySQL中放下表,並強調了預防措施和風險。它強調,沒有備份,該動作是不可逆轉的,詳細介紹了恢復方法和潛在的生產環境危害。

本文討論了在PostgreSQL,MySQL和MongoDB等各個數據庫中的JSON列上創建索引,以增強查詢性能。它解釋了索引特定的JSON路徑的語法和好處,並列出了支持的數據庫系統。

文章討論了使用準備好的語句,輸入驗證和強密碼策略確保針對SQL注入和蠻力攻擊的MySQL。(159個字符)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境