产生原因
最近对项目进行事务优化的时候出现的错误信息:Lock wait timeout exceeded;
于是,先在有道词典上看看啥意思
那么为什么会出现这个情况呢?可能是在数据库中有已在提交或者在回滚的事务导致的。
解决办法
可以手动去在数据库中干掉他,即手动杀死线程
如下:我这里用的是SQLyog
1、SHOW FULL PROCESSLIST;执行该语句
这个语句可以查看当前数据库中的线程情况
而后再执行select * from information_schema.innodb_lock_waits;
如果没有看到正在执行的慢SQL记录线程,再去查看innodb的事务表
执行SELECT * FROM information_schema.INNODB_TRX\G语句INNODB_TRX,看看里面的状态是否存在正在锁定的事务线程,看看ID是否在show full