【问题标题】:Mysql lock wait timeout exceeded on update query更新查询超过了Mysql锁等待超时
【发布时间】:2015-10-13 21:19:24
【问题描述】:

在生产服务器的数据库中,调度程序每天运行一个程序,在该程序中我很少有删除插入和更新语句。

但它有时会在使用某些常用表的 1 次更新时抛出 lock wait timeout exceeded 错误。

一开始innodb_lock_wait_timeout是50秒,后来改成100,问题解决了一段时间,后来又出现错误,改成120,又临时解决了。现在我已经为全局设置了 150 秒,并在会话中设置了 200(在过程中)。几天后它工作正常。

但是这个过程非常重要,得到错误会产生问题,因为它包含非常重要的数据。

那么还有其他解决方案可以永久解决这个问题吗?

我是新手,请帮忙。

附: mysql - 5.6 128 GB 内存。 使用具有持久连接池的休眠。

【问题讨论】:

    标签: mysql timeout lock-timeout


    【解决方案1】:

    在 my.cnf 中执行以下操作并重新启动 mysql

    [mysqld]
    innodb_lock_wait_timeout=10000
    

     SET GLOBAL innodb_lock_wait_timeout = 10000;
    

    您还可以将触发会话设置为临时超时,将以下内容添加到您的触发器中:

    SET innodb_lock_wait_timeout = 10000; 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-07
      • 2021-10-15
      • 2015-07-18
      • 2011-12-25
      • 1970-01-01
      • 2013-12-23
      • 2014-09-05
      • 1970-01-01
      相关资源
      最近更新 更多