线上java程序报错:Lock wait timeout exceeded; try restarting transaction
线上的java程序突然报错了,提示:
如下图:

Caused by: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:123)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)
at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362)
如下图:

发布于:2年前 (2023-03-29) IP属地:四川省
1 个回答

mysql版本是多少?
发布于:2年前 (2023-03-29) IP属地:四川省

mysql的版本是5.7
发布于:2年前 (2023-03-29) IP属地:四川省

mysql的版本是5.7
看了下mysql的隔离级别:MySQL5.6 中整个事务回滚后会自动创建一个事务,而MySQL5.7则不会再自动创建事务。因此这里需要在mysql的[mysqld]下配置一个:
在生产环境使用中,建议将innodb_rollback_on_timeout 设置为ON。应用程序一定要做好事务控制,在一个事务出现异常时必须进行显式rollback
innodb_rollback_on_timeout = on
在生产环境使用中,建议将innodb_rollback_on_timeout 设置为ON。应用程序一定要做好事务控制,在一个事务出现异常时必须进行显式rollback
发布于:2年前 (2023-03-29) IP属地:四川省
我来回答
您需要 登录 后回答此问题!