Lock wait timeout exceeded; try restarting transaction解决方法

记录

Posted on 2019-07-12 10:15:00 in Mysql   阅读(8194) Last updated on 2019-07-12 10:53:43

常用sql

查询当前执行的sql

SHOW FULL PROCESSLIST;

查询当前引擎的状态

SHOW ENGINE INNODB STATUS;

查询当前执行的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

查询当前的锁

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

锁等待的对应关系

SELECT * FROM information_schema.INNODB_LOCK_waits;

查询事务是否自动提交

SELECT @@autocommit;

查询当前使用的是我隔离级别

SELECT @@tx_isolation;

查询当前使用的bin log

SHOW MASTER STATUS;

Lock wait timeout exceeded; try restarting transaction 当报这个错误有以下解决方案:
1 首先执行SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; 查看执行的sql对应的是那个事务!
2 然后执行SELECT * FROM information_schema.INNODB_LOCK_waits;查看这个事务在等那个事务的锁!
3 然后执行SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; 查看在等的事务的trx_mysql_thread_id(也可以看下trx_started事务开始时间是不是过去很长时间了)!
4 最后执行KILL 811; (trx_mysql_thread_id) 将这个事务kill调!