我在MYSQL中使用一个表名“test”,它在事务T1期间锁定,在20分钟内完成。当我在这20分钟内通过另一个事务T2更新这个表时。我收到一个例外: -
11:58:38,584 ERROR [STDERR] java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
11:58:38,584 ERROR [STDERR] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928)
11:58:38,584 ERROR [STDERR] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
11:58:38,584 ERROR [STDERR] at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1124)
11:58:38,584 ERROR [STDERR] at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:676)请给我提供解决方案,我怎样才能做这个事务T2没有得到这个异常?
是否更新mysql数据库中innodb_lock_wait_timeout的值来解决此异常是正确的。我期待为这个问题找到任何有用的解决方案。