Mysql 执行写操作报错 Lock wait timeout exceeded; try restarting transaction

Mysql 执行写操作报错 Lock wait timeout exceeded; try restarting transaction

前景:

在navicat 中执行delete语句时,发现一直执行但是最后报错 Lock wait timeout exceeded; try restarting transaction。

解决办法:

网上各种搜索,发现说查询mysql的三张表,看是否有锁表

select * from information_schema.innoDb_trx;

select * from information_schema.innodb_locks;

select * from information_schema.innodb_lock_waits;

各自解释:
innodb_trx ## 当前运行的所有事务
innodb_locks ## 当前出现的锁
innodb_lock_waits ## 锁等待的对应关系

执行

select * from information_schema.innoDb_trx;
如果数据库中有锁的话,那么在 trx_state为 LOCK_WAIT.
最终发现没有,只有RUNING.发现其 trx_started很早已经距离当前时间相差1小时,于是将RUNING的进程杀掉,可以正常执行delete语句。
kill trx_mysql_thread_id对应的进程id

解释:
RUNNING” 即正在执行的事务,并没有锁。。

在这里插入图片描述
ZUHONG

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值