记录一次死锁解决步骤
1.查看当前事物
#当前运行的所有事物
mysql> select * from information_schema.INNODB_TRX;
[image:744FD9FF-5E78-4D1B-A9AE-5B8DD7B53EE4-2153-00007C1A009E25BC/CF7CF28C-A31E-4ED0-965E-C1080C2BD475.png]
#当前出现的锁
mysql> select * from information_schema.INNODB_LOCKs;
[image:50024BA5-41A0-4C20-A513-2EEC3D7421DB-2153-00007C272747F773/547FA9AA-56AD-49C4-959D-E6434E71A4B5.png]
#锁等待的对应关系
mysql> select * from information_schema.INNODB_LOCK_waits;
[image:D044C0C0-A180-48AD-A94E-6A71E5EF4B95-2153-00007C1F0CCD8521/423FA792-743D-49C4-B43D-51F7EAF140C9.png]
2.干掉死锁 kill 22374
看事务表INNODB_TRX,里面是否有正在锁定的事务线程,看看ID是否在show processlist里面的sleep线程中,如果是,就证明这个sleep的线程事务一直没有commit或者rollback而是卡住了,我们需要手动kill掉。
Ok解决