mysql“waiting for table metadata lock”挂起一个特定的表

uoifb46i  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(364)

我正在尝试向特定表中添加列。每次我向上或向下运行迁移时,都会弹出一个sleep命令并阻止所有操作。就像其他遇到这个问题的人一样,我终止了阻塞过程,一切都按预期进行。
例如:mysql alter table挂起
我试过在不同的表上运行迁移,但没有问题。这张table好像有点特别。
我应该在哪里或找什么?为什么这个问题会一直发生?
谢谢。

mysql> show processlist;
+-----+------+-----------------+--------+---------+------+---------------------------------+----------------------------------------------+
| Id  | User | Host            | db     | Command | Time | State                           | Info                                         |
+-----+------+-----------------+--------+---------+------+---------------------------------+----------------------------------------------+
| 351 | root | localhost:54691 | database | Sleep   |   25 |                                 | NULL                                         |
| 352 | root | localhost:54692 | NULL     | Sleep   |   54 |                                 | NULL                                         |
| 377 | root | localhost       | database | Query   |    0 | starting                        | show processlist                             |
| 381 | root | localhost:54858 | database | Query   |    5 | Waiting for table metadata lock | ALTER TABLE company ADD COLUMN active        |
| 382 | root | localhost:54860 | database | Sleep   |    5 |                                 | NULL                                         |
+-----+------+-----------------+--------+---------+------+---------------------------------+----------------------------------------------+
5 rows in set (0.00 sec)

本案的犯罪过程是 382 .

f8rj6qna

f8rj6qna1#

许多其他类似帖子的答案是,先终止睡眠过程,然后“调试”。我的问题与python中的循环导入问题有关,与mysql无关。

相关问题