mysql解锁

概述

有时候会遇到数据库死锁问题,报错锁等待超时:Lock wait timeout exceeded

解决

查看锁情况

查询锁

-- mysql 8.0
-- 查看当前锁
select * from performance_schema.data_locks;
-- 锁关系
select * from performance_schema.data_lock_waits;
-- mysql 6
select * from information_schema.innodb_locks;
select * from information_schema.innodb_lock_waits;

查看当前事务

select * from information_schema.innodb_trx;

查询正在进行的进程

show processlist;

定位锁对应进程

当processlist有info信息的时候还是非常好定位的,如果没有都是null的时候:可以通过死锁的事务id定位事务表的事务,明确事务开始时间,然后当前时间减去事务开始时间计算执行秒数

杀死进程,解锁

kill 进程号;

kill之后再去查死锁。

参考资料:
https://blog.csdn.net/mr_zhu_wenxing/article/details/127742187

posted @ 2023-04-03 17:34  dev_liufq  阅读(92)  评论(0编辑  收藏  举报