之前在spring boot使用@Transactional事务的时候,突然报了“Lock wait timeout exceeded; try restarting transaction ”的异常。
想到可能是debug的时候卡住了,就一直点点快了。导致之前的事务没提交就做另一条更新语句导致死锁。
于是在网上找到如何解决这种死锁的方法,原文链接如下:
https://blog.csdn.net/moshenglv/article/details/78864059
用了他的第一种方法,把之前未提交事务的线程kill掉就可以了。
select * from information_schema.innodb_trx
主要看着几个字段,如果有阻塞数据就不是0,找到后在根据下图这个字段杀死进程