MySQL删除或改表时出现Waiting for table metadata lock
当我们使用客户端执行改表的相关操作, 如ALTER TABLE 或DROP TABLE 时, 由于某些原因在执行过程中意外退出了客户端, 再次进入执行时可能会一直卡住, 执行show processlist时, 出现Waiting for table metadata lock, 原因:有事务未提交.

可以看到状态为Query的进程, 正在执行的命令是drop table, 先kill掉所在进程487209:
kill 487209
然后查询未提交的事务:
select * from information_schema.innodb_trx;

确实有一条记录, 但是字段太多不好看, 换个显示格式, 后面加\G
select * from information_schema.innodb_trx\G
这就就好看多了:

这样就好看多了, 直接kill掉对应的trx_mysql_thread_id即可:
kill 485434;
![]()
再次执行改表语句, OK
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
