Mysql事物鎖等待超時 Lock wait timeout exceeded; try restarting transaction



 

原因分析: 

在高並發的情況下,Spring事物造成數據庫死鎖,后續操作超時拋出異常。 
Mysql數據庫采用InnoDB模式,默認參數:innodb_lock_wait_timeout設置鎖等待的時間是50s,一旦數據庫鎖超過這個時間就會報錯。

解決方案

1、通過下面語句查找到為提交事務的數據,kill掉此線程即可。

select * from information_schema.innodb_trx

kill trx_mysql_thread_id ;

如果kill掉的sql 是update或insert 先保存sql再kill

2、增加鎖等待時間,即增大下面配置項參數值,單位為秒(s)

innodb_lock_wait_timeout=200

3、優化存儲過程,事務避免過長時間的等待

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM