MySQL事务没有提交时网络断开,MySQL手动关闭事务

出现的问题

由于事务没有结束,锁没有释放导致接下来的操作锁等待超时异常

解决

-- 查看当前正在执行的事务
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命令

你可能感兴趣的:(MySQL事务没有提交时网络断开,MySQL手动关闭事务)