1.Lock wait说明出现了锁问题
使用 SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
查看当前事务,使用SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
查看当前锁定的事务,使用SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
查看当前等锁的事务。使用以上三个sql基本能定位到代码所在位置。
http://www.mamicode.com/info-detail-2845763.html
2.解决方法
应急方法:show full processlist; kill掉出现问题的进程。 ps.有的时候通过processlist是看不出哪里有锁等待的,当两个事务都在commit阶段是无法体现在processlist上 根治方法:select * from innodb_trx;查看有是哪些事务占据了表资源。 ps.通过这个办法就需要对innodb有一些了解才好处理
https://ningyu1.github.io/site/post/75-mysql-lock-wait-timeout-exceeded/