Lock wait timeout exceeded; try restarting transaction

针对以上问题 执行下面的Sql语句 INNODB_TRX表主要是包含了正在InnoDB引擎中执行的所有事务的信息,包括waiting for a lock和running的事务
SELECT * FROM information_schema.INNODB_TRX;

出现下面的情况

执行下面Sql语句查询当前死锁的信息,经数据分析是由上面的 trx_mysql_thread_id =0的情况造成的。
select * from performance_schema.data_locks;

  

 

如何删除 trx_mysql_thread_id =0的事务?

1)xa recover; //执行结果如下,包括formatID,gtrid_length, bqual_length,data_length
2)
xa rollback 'left(data,gtrid_length)','substr(data,gtrid_length+1,bqual_length)',formatID;

例子:
select left('14be7404-9897-4537-b169-213b73884238:275283',40); //14be7404-9897-4537-b169-213b73884238:275
select substr('14be7404-9897-4537-b169-213b73884238:275283',41,3); //283
xa rollback '14be7404-9897-4537-b169-213b73884238:275','283' ,1;

  

 

posted @ 2019-05-21 16:47  Lucky-小王子  阅读(485)  评论(0编辑  收藏  举报