针对以上问题 执行下面的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;