Lock wait timeout exceeded; try restarting transaction

2022-07-26,,,

问题原因:

1、在高并发的情况下,Spring事物造成数据库死锁,后续操作超时抛出异常。

2、Mysql数据库采用InnoDB模式,默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s,一旦数据库锁超过这个时间就会报错

解决方法:
1、查看当前的事务 当前运行的所有事务

mysql> SELECT * FROM information_schema.INNODB_TRX;

就长这样,LOCK WAIT为锁住状态,后面有sql语句,是导致锁住的原因

2、然后直接开始杀线程,trx_mysql_thread_id这个字段是线程id,执行命令:

kill thread_id

如果kill不了(我开始就是这样),那从最后一个开始kill试试,我成功了的。我现在还有点懵。。

本文地址:https://blog.csdn.net/weixin_44092667/article/details/110950120

《Lock wait timeout exceeded; try restarting transaction.doc》

下载本文的Word格式文档,以方便收藏与打印。