Назад | Перейти на главную страницу

показать блокировки mysql myisam

при удалении или переименовании таблицы с помощью механизма хранения myisam я понимаю, что он ожидает блокировки метаданных таблицы, однако показ полного списка процессов не обнаруживает проблемный запрос. любая идея?

| 462 | root | xxx.xxx.xxx.xx:54658 | mydb | Sleep   | 1162 |                                 | NULL                                                 |
| 465 | root | localhost           | mydb | Query   |    0 | NULL                            | show full processlist                                |
| 466 | root | localhost           | mydb | Query   |  125 | Waiting for table metadata lock | alter table mytable rename to mytable_junk |

Если вы используете MySQL 5.5, есть отчет об ошибке.

Если факт, нажмите здесь, чтобы узнать о блокировке метаданных. Он предназначен для защиты таблиц от выполнения DDL во время выполнения транзакции.

Что кажется странным, так это то, что вы получаете это в таблице MyISAM.

Я пытался преобразовать сортировку таблицы следующим образом:

 alter table xxx convert to character set utf8 collate utf8_unicode_ci;

Затем я заметил, что в «Показать полный список процессов» запрос завис в следующем состоянии «Ожидание блокировки метаданных таблицы».

Чтобы решить эту проблему, я параллельно открыл другую консоль и запустил следующую команду SQL:

flush tables

С уважением