MySQL:1205 Lock wait timeout exceeded; try restarting transaction解决方法
出现原因:一个SQL执行完了,但未commit,也没有rollback就return退出了,反面的SQL想要执行,就是被锁,超时竣事。
解决方法三步走:
一:查看当前线程
二:查看事务表
- select * from information_schema.innodb_trx;
复制代码
在第一步中没有看到正在执行的很慢SQL纪录线程,再去查看innodb的事务表INNODB_TRX,看下内里是否有正在锁定的事务线程,看看ID是否在show full processlist内里的sleep线程中,如果是,就证明这个sleep的线程事务一直没有commit大概rollback而是卡住了,我们需要手动kill掉。
三:杀死被锁线程
kill之后,再去执行反面的SQL,就可以执行乐成了!
验证
最后再次查看线程及事务表,即可发现被锁的事务线程已经没有啦~~~
来源:https://blog.csdn.net/Xin6Yang/article/details/112023479
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |