Mysql 杀死进程 | 解决Lock wait timeout exceeded

Mysql 杀死进程 | 解决Lock wait timeout exceeded

前言:2022年11月8日晚上11点左右一个小老弟问我Lock wait timeout exceeded怎么解决,这个小老弟项目明天给领导审查,所以引出了这一篇文章,随意记录。

查询事务语句(mysql8.0)

select * from information_schema.innodb_trx\G;

查询事务死锁语句(mysql8.0)

select * from performance_schema.data_locks\G;

查询正在进行的进程

show processlist;

【重点】当info为null定位哪个进程为死锁进程

当processlist有info信息的时候还是非常好定位的,如果没有都是null的时候:通过死锁的事务id定位事务表的事务,明确事务开始时间
在这里插入图片描述
然后当前时间减去事务开始时间计算执行秒数
在这里插入图片描述
杀死进程语句:

kill 9668;

kill之后再去查死锁,已经没有了。
在这里插入图片描述

最后

  1. 查询事务和查询死锁的语句可以通过事务ID联合查询,加快排查速度;
  2. show processlist也有专门的一张表,可以过滤状态和时长,方便排查;
  3. Command为Sleep的时间超50(默认死锁时间是50秒)的进程,基本上都可以随意杀;

1和2的语句我没有测试,我就不写上来了,理论上是OK的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值