排查MySQL事务没有提交导致 锁等待 Lock wait timeout exceeded

Posted 小白兔奶糖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排查MySQL事务没有提交导致 锁等待 Lock wait timeout exceeded相关的知识,希望对你有一定的参考价值。

解决思路:

  select * from information_schema.innodb_trx 之后找到了一个一直没有提交的只读事务,

  kill 到了对应的线程后ok 了。

 

转载自:http://blog.sina.com.cn/s/blog_6bb63c9e0100s7cb.html

mysql5.5中,information_schema 库中增加了三个关于锁的表(MEMORY引擎);
  innodb_trx ## 当前运行的所有事务

  innodb_locks ## 当前出现的锁

  innodb_lock_waits ## 锁等待的对应关系

## 产生事务,在innodb_trx就有数据 ;
mysql> select * from information_schema.innodb_trx G;

如果没有产生锁等待,innodb_lock_waits 和innodb_locks 中没有数据

如果产生所等待,查询这三张表,找到对应线程,杀掉。



以上是关于排查MySQL事务没有提交导致 锁等待 Lock wait timeout exceeded的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 事务没有提交导致 锁等待 Lock wait timeout exceeded

MySQL事务没有提交导致 锁等待Lock wait timeout exceeded异常的处理办法

MySQL 锁等待超时(Lock wait timeout exceeded)

mysql所排查思路

mysql事务未提交导致锁等待如何解决

mysql行锁等待异常