Как убрать статус 'используется' у таблиц InnoBD?

Ситуация: случился сбой, 2-3 таблицы были повреждены, InnoBD. Ну, посмотрел какие - восстановил. Но: у всех таблиц, которые не были повреждены, в разных базах (300 шт.) у таблиц типа InnoBD статус "используется". Как его исправить?
Пишу:
mysqldump -u... -p... Х > 'Х.sql'
Получаю:
mysqldump: Got error: 1932: "Table 'Х.*' doesn't exist in engine" when using LOCK TABLES

Пишу:
mysqldump --skip-lock-tables -u... -p... Х > 'Х.sql'

Получаю:
mysqldump: Couldn't execute 'show create table `*`': Table 'Х.*' doesn't exist in engine (1932)
  • Вопрос задан
  • 365 просмотров
Решения вопроса 1
Alex_Geer
@Alex_Geer
System Engineer
Для решения проблемы со статусом "используется" у таблиц типа InnoBD в не поврежденных таблицах, можно воспользоваться командой mysqlcheck. Она проверит и исправит таблицы, которые имеют ошибки. Для этого нужно выполнить следующую команду:
mysqlcheck -u [username] -p --all-databases --check --auto-repair --flush-privileges

Где [username] - это ваше имя пользователя. Команда --check проверяет таблицы на ошибки, --auto-repair исправляет их автоматически, а --flush-privileges обновляет права доступа.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
2ord
@2ord
Я не DBA, но, как понимаю, "используется" - значит активно выполняются запросы над таблицей, что держит её в открытом состоянии.
Почему это надо исправлять?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы