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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部