mysql 出现:Error 1205: Lock wait timeout exceeded; try restarting transaction

哈哈,没想到人生第一次遇到mysql的等待锁。幸会幸会

前端页面还没做好,现在所有接口都是测试直接测。访问的是我的本机,没有放在服务器跑。

测试同事以为我电脑运行的程序太多,导致测试的时候查询很慢,一直处于等待状态。

后来查看日志发现,报错如下:

Error 1205: Lock wait timeout exceeded; try restarting transaction

为什么会出现这个问题?

因为我需要对A表修改成功后再修改B表。如果其中一个失败,那么事务回滚。在事务回滚以后没有把整个函数return掉。

参考了网上各位大佬的做法。

首先:

show procelllist;

查看当前数据库对应的

备注:这两条数据是同一个数据库的数据。

由此可见,对这同一个数据库,一个为Query一个为Sleep

执行如下命令

kill 12278;

这个12278对应图片里的第一列id,也就是pid。kill掉这个sleep的就可以。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值