mysqldump table doesn't exist when using LOCK TABLES

Создана:

2016-11-16 13:02:07 UTC

Изменена:

2017-08-22 18:27:03 UTC

20

Помогла ли вам статья?


Есть вопросы?

Отправить запрос

mysqldump table doesn't exist when using LOCK TABLES

Симптомы

Не удается создать дамп базы данных MySQL с ошибкой:

mysqldump: Got error: 1146: Table '<TABLENAME>' doesn't exist when using LOCK TABLES

Причина

  1. Возможно, файлы данных InnoDB были удалены или пересозданы, а соответствующие файлы .frm таблиц InnoDB из папки базы данных не были удалены или файлы .frm были перемещены в другую базу данных.
  2. Неверно настроены права и владельцы для файлов таблиц в папке данных mysql.
  3. Таблица повреждена.
  4. Таблица создана в верхнем регистре.

Решение

  1. Выполните show tables и проверьте, показывается ли таблица в списке. Если нет, уберите файл .frm из папки базы данных.
  2. Проверьте настройки прав и владения для файлов таблиц в папке данных mysql: в идеале владельцем должен быть пользователь mysql, а права должны быть 660.
  3. Восстановите таблицу.
  4. Установите lower_case_table_names
  5. Используйте параметр --skip-lock-tables для mysqldump
Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 20 из 70
Еще есть вопросы? Отправить запрос
Войдите в службу, чтобы оставить комментарий.