MySQL 死鎖和鎖等待
【資料庫版本】MySQL5.7
【問題現象】 今天遇到了一個鎖超時的問題,但是客戶說是deadlock,讓幫分析下死鎖監控模組為什麼沒有顯示到這個死鎖錯誤
【問題小結】程式報錯 1205 Lock wat timeout exceeded,客戶以為是deadlock,其實是兩個概念,說明死鎖監控模組是沒問題的。死鎖監控到的是死鎖,而不是鎖等待。
報錯資訊如下:
SQLSTATEHY000]:General error: 1205 Lock wat timeout exceeded; try restarting transaction (SQL: UPDATE xx set xxx = 100 where id=1 and rock_id > 1)
1213 Deadlock found when trying to get lock; try restarting transaction
https://www.cnblogs.com/tartis/p/9366574.html
https://dev.mysql.com/doc/refman/8.0/en/innodb-deadlock-example.html
MySQL 5.7我們可以透過下面語句查詢鎖狀態資訊
SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query FROM information_schema.`INNODB_LOCK_WAITS` w INNER JOIN information_schema.`INNODB_TRX` b ON b.`trx_id` = w.`blocking_trx_id` INNER JOIN information_schema.`INNODB_TRX` r ON r.`trx_id` = w.`requesting_trx_id`;
MySQL8.0 我們透過如下語句檢視鎖資訊
select * from x$innodb_lock_waits;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-2685797/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL鎖等待與死鎖問題分析MySql
- mysql行鎖和死鎖檢測MySql
- Mysql 兩階段鎖和死鎖MySql
- MySQL:MTS和mysqldump死鎖MySql
- 面試:什麼是死鎖,如何避免或解決死鎖;MySQL中的死鎖現象,MySQL死鎖如何解決面試MySql
- MySQL死鎖系列-線上死鎖問題排查思路MySql
- MySQL 死鎖解決MySql
- MySQL死鎖問題MySql
- 【MySQL】漫談死鎖MySql
- MySQL解決死鎖MySql
- MySQL:一個死鎖分析 (未分析出來的死鎖)MySql
- mysql鎖等待查詢分析MySql
- Java鎖——死鎖Java
- MySQL死鎖案例一(回滾導致死鎖)MySql
- MySQL死鎖案例二(自增列導致死鎖)MySql
- MySQL 死鎖問題分析MySql
- MySQL:死鎖一例MySql
- Mysql如何處理死鎖MySql
- MySQL列印死鎖日誌MySql
- 【MySQL】死鎖案例之六MySql
- 【MySQL】死鎖案例之七MySql
- 【MySQL】死鎖案例之八MySql
- 【MySQL】死鎖案例之四MySql
- 【MySQL】死鎖案例之一MySql
- 【MySQL】死鎖案例之二MySql
- 【MySQL】死鎖案例之三MySql
- MySQL 死鎖日誌分析MySql
- mysql死鎖最佳化MySql
- RDSforMySQLInnoDB行鎖等待和鎖等待超時的處理ORMMySql
- MySQL死鎖系列-常見加鎖場景分析MySql
- MySQL/InnoDB中,樂觀鎖、悲觀鎖、共享鎖、排它鎖、行鎖、表鎖、死鎖概念的理解MySql
- 剖析6個MySQL死鎖案例的原因以及死鎖預防策略MySql
- 檢視MySQL鎖等待的原因MySql
- 死鎖
- MySQL批量更新死鎖案例分析MySql
- MySQL:Innodb 一個死鎖案例MySql
- 故障分析 | MySQL死鎖案例分析MySql
- MySQL InnoDB如何應付死鎖MySql