MySQL:可以安全地杀死卡在“等待表元数据锁定”中的事务

Men*_*her 9 mysql innodb deadlock locking mysql-5.6

早上/下午/晚上好。

我试图在有几百万行的表中添加一列。这是完整的查询:

alter table date_tasks_mark add column noDuplicate int unsigned not null default 0
Run Code Online (Sandbox Code Playgroud)

不过好像卡住了。

| 28893 | root         | localhost | database_name   | Query   | 10668 | Waiting for table metadata lock | alter table date_tasks_marks add column noDuplicate int unsigned not null default 0
Run Code Online (Sandbox Code Playgroud)

终止查询对我来说安全还是会破坏我的表(它已经处于这种状态大约半小时)?

tom*_*bom 10

是的,它很安全。您的alter table查询甚至还没有开始。
但是,这waiting for table metadata lock意味着,在该表上还有另一个事务长时间运行,您应该杀死那个事务来解决问题。(在此处阅读更多相关信息:8.11.4 元数据锁定

要查找此事务,此线程可能会有所帮助:如何查找导致“等待表元数据锁定”状态的事务?