更新查询超过了Mysql锁等待超时
Posted
技术标签:
【中文标题】更新查询超过了Mysql锁等待超时【英文标题】:Mysql lock wait timeout exceeded on update query 【发布时间】: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 内存。 使用具有持久连接池的休眠。
【问题讨论】:
【参考方案1】:在 my.cnf 中执行以下操作并重新启动 mysql
[mysqld]
innodb_lock_wait_timeout=10000
或
SET GLOBAL innodb_lock_wait_timeout = 10000;
您还可以将触发会话设置为临时超时,将以下内容添加到您的触发器中:
SET innodb_lock_wait_timeout = 10000;
【讨论】:
以上是关于更新查询超过了Mysql锁等待超时的主要内容,如果未能解决你的问题,请参考以下文章