Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql innodb\u锁定\u等待\u超时何时被忽略?_Mysql_Hibernate_Spring_Deadlock - Fatal编程技术网

Mysql innodb\u锁定\u等待\u超时何时被忽略?

Mysql innodb\u锁定\u等待\u超时何时被忽略?,mysql,hibernate,spring,deadlock,Mysql,Hibernate,Spring,Deadlock,我遇到了一个奇怪的经典死锁异常: 原因:java.sql.BatchUpdateException:尝试获取锁时发现死锁;尝试重新启动事务 代码已被识别,实际上,可能会出现死锁。问题是我马上就得到了例外。我已经将innodb\u lock\u wait\u timeout变量设置为1小时(3600)。但是,例外情况马上就会出现 到底发生了什么?您遇到了死锁锁等待超时变量是查询在超时之前等待获取锁的时间-不是同一回事 从手册中: InnoDB事务在放弃前可能等待行锁定的超时(以秒为单位)。默认值为

我遇到了一个奇怪的经典死锁异常:

原因:java.sql.BatchUpdateException:尝试获取锁时发现死锁;尝试重新启动事务

代码已被识别,实际上,可能会出现死锁。问题是我马上就得到了例外。我已经将
innodb\u lock\u wait\u timeout
变量设置为1小时(3600)。但是,例外情况马上就会出现


到底发生了什么?

您遇到了死锁锁等待超时变量是查询在超时之前等待获取锁的时间-不是同一回事

从手册中: InnoDB事务在放弃前可能等待行锁定的超时(以秒为单位)。默认值为50秒。尝试访问被另一个InnoDB事务锁定的行的事务在发出以下错误之前最多会挂起几秒钟:

如果你在超时,你会看到这个。您有一个需要修复的适当死锁。 错误1205(HY000):超过锁定等待超时;尝试重新启动事务

启用innodb_deadlock_deadlock_detect时,锁等待超时值不适用于死锁(默认值)


也许MySQL已经足够聪明,可以识别循环死锁,而不必等待超时。但愿不会。:-)是否可以在运行时覆盖超时?是否有任何方法检查lock_wait_timeout的有效值?若要查看当前值,请运行
show全局变量,如“%wait_timeout”