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