mysql出表锁表如何处理

编程

报错

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.executeQuery(ClientPreparedStatement.java:1003)

at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)

at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)

at com.p6spy.engine.wrapper.PreparedStatementWrapper.executeQuery(PreparedStatementWrapper.java:78)

at org.quartz.impl.jdbcjobstore.StdRowLockSemaphore.executeSQL(StdRowLockSemaphore.java:123)

... 47 common frames omitted

启动项目时,发现项目报错如上,经查是数据库表死锁造成的。

解决方案

首先查看被锁表的进程

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

然后找到进程号,即trx_mysql_thread_id

执行

kill  进程号;

或者直接重启mysql服务:

service mysql restart

重启后,问题解决。

以上是 mysql出表锁表如何处理 的全部内容, 来源链接: utcz.com/z/518747.html

回到顶部