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;
喜歡的點個贊❤吧!