当前位置: 代码迷 >> 综合 >> 【mysql】MySql锁等待(Lock wait timeout exceeded)ERROR 1205: Lock wait timeout exceeded; try restarting。。
  详细解决方案

【mysql】MySql锁等待(Lock wait timeout exceeded)ERROR 1205: Lock wait timeout exceeded; try restarting。。

热度:43   发布时间:2023-12-16 07:07:09.0

 

今天遇到了mysql无法增加字段,于是排查了很久,终于在网上找到解决案了:https://my.oschina.net/quanzhong/blog/222091

此问题的原因是我debug的时候没有放开debug造成的,遇到这种问题建议一般是把环境重置后,再排查。

 

  • 环境

    MySQL5.5 引擎:InnoDB

  • 现象

    A.数据更新或新增后数据经常自动回滚。

    B.表操作总报 Lock wait timeout exceeded 并长时间无反应

  • 解决方法

    A.应急方法:show processlist; kill掉出现问题的进程

    B.根治方法:select * from innodb_trx 查看有是哪些事务占据了表资源。

        C.我的方法:设置MySQL锁等待超时 innodb_lock_wait_timeout=50 ,autocommit=on

  • 该类问题导致原因

    据我分析,Mysql的 InnoDB存储引擎是支持事务的,事务开启后没有被主动Commit。导致该资源被长期占用,其他事务在抢占该资源时,因上一个事务的锁而导致抢占失败!因此出现 Lock wait timeout exceeded 

  相关解决方案