MySQL问题-[Err] 1205 - Lock wait timeout exceeded; try restarting transaction
[Err] 1205 -Lock wait timeout exceeded; try restarting transaction错误解决
·
对于“[Err] 1205 -Lock wait timeout exceeded; try restarting transaction”这个错误,顾名思义,事务锁超时,尝试重启事务。但当重试几次后,还是报该错误,那么这个时候我们可以手动kill掉造成死锁的事务线程。
mysql数据库事务隔离级别
-
Read Uncommitted(读取未提交内容)
-
Read Committed(读取提交内容)
-
Repeatable Read(可重读)
-
Serializable(可串行化)
查看数据库版本
select VERSION();
查看数据库事务
查看会话隔离级别(5.0以上版本):select @@tx_isolation;
查看会话隔离级别(8.0以上版本):select @@transaction_isolation;
查看数据库线程情况
SHOW FULL PROCESSLIST;
没有看到正在执行的很慢SQL记录线程,再去查看innodb的事务表INNODB_TRX,看下里面是否有正在锁定的事务线程,看看ID是否在show full processlist里面的sleep线程中,如果是,就证明这个sleep的线程事务一直没有commit或者rollback而是卡住了,我们需要手动kill掉
SELECT * FROM information_schema.INNODB_TRX;
发现id为1612676090的SQL,手动kill掉
kill死锁的SQL后,再去执行就OK了。
更多推荐
已为社区贡献1条内容
所有评论(0)