在生产服务器的数据库中,一个过程每天由调度程序运行,在这个过程中我有很少的删除插入和更新语句。
,但它抛出锁等待超时超过错误有时在一次更新,使用一些常用的表。
最初innodb_lock_wait_timeout是50秒,然后我把它改为100,所以问题解决了一段时间,但后来又发生了错误,所以我把它改为120,再次解决了临时问题。现在我已经设置了150秒的全局和设置200在会话(过程)。从几天开始就很好了。
但是这个过程非常重要,获取错误会产生问题,因为它包含非常重要的数据。
那么有没有其他的办法可以永久解决这个问题呢?
我是新手,请帮忙。
注:Mysql - 5.6128 gb内存。使用具有持久连接池的hibernate
在my.cnf中执行以下操作并重新启动mysql
[mysqld]
innodb_lock_wait_timeout=10000
或
SET GLOBAL innodb_lock_wait_timeout = 10000;
你也可以为你的触发会话设置临时超时:
SET innodb_lock_wait_timeout = 10000;