Mysql Lock wait timeout exceeded 处理方法

Mysql Lock wait timeout exceeded 处理方法

1、一个问题

今天在做项目的时候突然遇到了下面的问题

img

怎么回事,之前这个接口一直都正常的啊。从报错结果来看,应该是数据库出问题了。

img

执行一下这条更新语句,发现数据库的锁连接超时

2、解决方案

-- 当前运行的所有事务
SELECT * FROM information_schema.INNODB_TRX;

执行一下上面的语句,结果如下(超时的事务已经被我kill了,所以没有数据)

image-20201216175719646

看事务表INNODB_TRX里面是否有正在锁定的事务线程,如果有锁定的事务,找到他的trx_mysql_thread_id,

-- 查看数据库当前的进程
show  processlist;

去数据库当前进程中有没有这个id,如果存在,就证明这个sleep的线程事务一直没有commit或者rollback而是卡住了,我们需要手动kill掉。

-- kill 命令(kill 加上 id值)
kill id

这时候发现更新正常

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值