MySQL 锁表解锁

1. 执行show full processlist观察state和info两列,查看有哪些线程在运行。
2.使用kill命令+对应线程前面id杀死卡死的线程。
其他的方式:

-- 查询是否锁表

-- 查询进程

show processlist ;

--查看当前运行的所有事务

如果情况紧急,此步骤可以跳过,主要用来查看核对:

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

--查看当前出现的锁

如果情况紧急,此步骤可以跳过,主要用来查看核对:

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

-- 查看等待锁的对应关系

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

看事务表INNODB_TRX中是否有正在锁定的事务线程,看看ID是否在show processlist的sleep线程中。如果在,说明这个sleep的线程事务一直没有commit或者rollback,而是卡住了,需要手动kill掉。搜索的结果中,如果在事务表发现了很多任务,最好都kill掉。

-- 查询到相对应的进程,然后杀死进程

kill id; -- 一般到这一步就解锁了
 
参考:https://www.jianshu.com/p/aa99df051c8f

 https://cloud.tencent.com/developer/article/2003116

posted @ 2020-11-25 15:02  声声慢43  阅读(373)  评论(0编辑  收藏  举报