1. 执行show full processlist观察state和info两列,查看有哪些线程在运行。

2.使用kill命令+对应线程前面id杀死卡死的线程。

其他的方式:

-- 查询是否锁表

mysql释放锁语句 mysql释放表锁_搜索

-- 查询进程

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