线上问题排查:数据库中的一行不能被update

今天数据遇到mysql只有一行不能update。
怀疑表被锁了,使用

show open tables where in_use>0;

这里写图片描述
没有发现锁的痕迹。
不对,应该是update执行的时候,查看是否被锁住。重新执行update,当update还在执行的,查看是否被锁。

执行update操作
这里写图片描述

另外的窗口查看是否有锁的现象

select * from information_schema.INNODB_LOCKS;

这里写图片描述

的确被锁住了。

select * from information_schema.innodb_trx where  trx_id=10788130

就能查看到事务的详细信息。

怎么解决这个问题呢?
使用mysql -uxxx -p 命令登录到数据库,进行回滚和提交就可以。
commit;
或者
rollback;(未真正执行)

这里写图片描述

具体是怎么回事呢?因为MySQL 5.5 InnoDB 锁等待,具体学习文章:
https://dbarobin.com/2015/01/27/innodb-lock-wait-under-mysql-5.5/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值