重启项目,因定时任务表即qrtz_开头的表被锁导致项目无法启动的问题

问题代码:Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

 

问题描述:因定时任务导致项目不能启动的原因可能有1:定时任务表出现脏数据,导致初始化失败项目不能启动;2:定时任务配置问题导致高强度对表操作,引发表锁死;3.定时任务操作不当,引发两个以上的进程因争夺资源造成互相等待

 

问题解决办法:

1、删除对应的脏数据,或者删除全部定时任务表,重启项目时会重新初始化创建表;

2、找到对应死锁的进程进行删除,再重启项目,详细如下:

(1)第一步,执行select * from information_schema.innodb_trx语句,在innodb_trx表中找到trx_state为LOCK WAIT的数据。

(2)第二步,执行kill trx_id语句,trx_id为trx_state=LOCK WAIT的数据的trx_id值。

3、上述方式都试过还无法启动时:重启数据库服务service mysqld restart

4、实在不行可以将数据库回滚到出现问题之前的时间数据版本

posted @ 2022-06-20 19:12  良辰没你虚设  阅读(1179)  评论(0)    收藏  举报