事务方法执行中断,导致锁表

报错信息:
数据库插入超时,但是查询正常。

原因分析:
本地debug带事务注解的方法时候,执行到一半之后直接停掉了服务。此时的事务没有正常释放,导致mysql锁住了表。

解决方法:
可以先执行命名查看是否有被锁住的表:

show OPEN TABLES where In_use > 0;

确认原因后,执行

SELECT * FROM information_schema.innodb_trx 

找到锁表的进程id(try_mysql_thread_id字段),
然后直接

kill xxx

你可能感兴趣的