show open tables where in_use > 0 命令可以查询锁表。
in_use 为 1 表示这个表同时被两个用户使用,一个正在用,一个在锁定中。
-- 为md_class表增加个写锁定
lock tables md_class write;
-- 查看锁表
show open tables where in_use > 0;
-- 表解锁
unlock tables;
查看锁表:

特殊情况下的锁定是线程阻塞导致的,查询锁表都查不出来,一直转圈,即使查询出也无法解锁,需要强制杀掉阻塞的线程。
select * from information_schema.innodb_trx; 方法可以查询到有两条阻塞的线程。

通过 kill + trx_mysql_thread_id 可以直接把对应的进程杀掉。
例:kill 3886;

喜欢的点个赞❤吧!

本文介绍如何使用MySQL命令查询锁定的表,并提供了解锁的方法。特殊情况下的线程阻塞导致的锁定可以通过查询并杀掉阻塞的线程来解决。
2199

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



