要查看 MySQL 数据库中的锁信息,可以使用以下方法之一:
-
使用
SHOW FULL PROCESSLIST
:这个命令将显示当前 MySQL 实例中正在执行的所有进程,包括它们所持有的锁信息。在终端中执行以下命令:
sql复制代码SHOW FULL PROCESSLIST;
这将列出当前连接到 MySQL 实例的所有客户端会话,并显示它们的状态、执行的查询以及持有的锁信息。
-
查询
INFORMATION_SCHEMA
:可以查询
sql复制代码INFORMATION_SCHEMA
数据库中的INNODB_LOCKS
和INNODB_LOCK_WAITS
表来获取锁的详细信息。例如:SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
这些查询将返回当前被锁定的对象以及等待锁释放的进程信息。
-
使用
mysqladmin
工具:可以使用
bash复制代码mysqladmin
工具的processlist
子命令来获取类似于SHOW PROCESSLIST
的信息,包括锁信息。例如:mysqladmin processlist
我这边是执行
然后查看 Waiting for table metadata lock 状态的数据 然后 kill id的值 kill 74903SHOW FULL PROCESSLIST
: