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