出现的问题
由于事务没有结束,锁没有释放导致接下来的操作锁等待超时异常
解决
-- 查看当前正在执行的事务
SELECT * FROM information_schema.INNODB_TRX
-- 查看当前出现的锁(貌似只有处于竞争状态的才可以查看的到)
SELECT * FROM information_schema.INNODB_LOCKS
-- 查看锁等待的对应关系(貌似只有处于竞争状态的才可以查看的到)
SELECT * FROM information_schema.innodb_lock_waits
-- 杀死线程
kill 线程id
-- 查看当前正在执行的事务
SELECT * FROM information_schema.INNODB_TRX
image.png
-- 查看当前出现的锁
SELECT * FROM information_schema.INNODB_LOCKS
image.png
-- 查看锁等待的对应关系
SELECT * FROM information_schema.innodb_lock_waits
image.png
只需要根据上面的三个SQL找到对应的线程ID然后kill 线程ID
就可以了
注意
这个kill时MySQL的命令,不是Linux的那个kill命令