今天在用 Navicat Premium 操作数据库的时候,发现一张表怎么都打不开,最开始还以为是网络的问题,后面才反应过来应该是锁表了,虽然InnoDB支持锁表,但是自己还是第一次遇到,所以琢磨了以下解决方法,以此记录下。
首先,我们得知道 MySQL在什么情况下会发生锁表
而下面命令就是用来查看当前运行的所有事务
select * from information_schema.innodb_trx
如果此时表被锁,那么肯定这次的事务是还没有提交的。

然后我们使用 kill trx_mysql_thread_id 杀死这个事务进程即可解锁表

本文介绍了当使用Navicat Premium操作MySQL数据库时遇到表被锁的情况如何解决。通过查看当前运行的所有事务来定位未提交的事务,并使用kill命令杀死该事务进程以解锁表。
2万+

被折叠的 条评论
为什么被折叠?



