MySQL «Ожидание блокировки метаданных таблицы» висит на 1 конкретной таблице - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь добавить столбец к определенной таблице.Каждый раз, когда я запускаю миграцию вверх или вниз, появляется команда SLEEP, которая блокирует все.Как и многие другие люди, столкнувшиеся с этой проблемой, я убиваю процесс блокировки, и все работает как положено.

Пример: MySql alter 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.

1 Ответ

0 голосов
/ 19 октября 2018

В ответах на многие другие подобные сообщения говорится, чтобы убить процесс SLEEP, а затем "отладить".Моя проблема была связана с проблемой кругового импорта в Python, а не с MySQL.

...