项目场景:
在springboot + vue的前后端分离模式中,后端整合mybatisPlus,触发原因是由于spring在手工开启食物时没有回滚或提交,在事务的try方法之前就出现错误
问题描述:
在程序启动时,连接数据库出现报错:com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
原因分析:
此报错出现时因为开发时再写一个文件下载接的接口,在几次测试后重启项目导致出现事务锁,在网络上搜索的原因说是由于整合mybatisPlus,调用了selectById,是否是这个原因引起的不是很清楚,但在当时开发过程中确实写过一个调用过该方法
解决方案:
查询有无回滚的事务:
select * from information_schema.innodb_trx;
如有,执行kill命令+ 查询出的id
kill id;
若还是无法解决,重启电脑,再打开idea,启动项目,即可启动成功(亲测有效)。