Не все таблицы отображаются при восстановлении MYSQL
Я восстанавливаю отсутствующую базу данных mysql с таблицами и имею файлы frm и ibdata1.
Я использовал innodb_file_per_table, чтобы каждая БД имела свой собственный файл данных, и тесты показывают, что новые БД теперь используют эту систему при создании.
Я заметил, что когда я просматриваю вновь импортированные файлы и данные или пишу какие-либо SQL-запросы, они не обнаруживаются. Доступны несколько "представлений", но нет таблиц.
Если я запускаю контрольную таблицу sometablename, я получаю, что таблица не существует. Если я пытаюсь создать таблицу с тем же именем, я получаю, что таблица уже существует.
Я останавливался и запускал службу MYSQL несколько раз, надеясь, что она поднимет новые frms, но ничего.
Любая идея?
1 ответ
Вы не можете восстановить базу данных, просто загрузив содержимое каталога базы данных. InnoDB хранит другую информацию в некоторых основных файлах, расположенных в главном каталоге данных MySQL.
Единственный надежный метод восстановления всех данных - это использовать mysqldump
и восстановить процедуру, или FLUSH WITH WRITE LOCK
перед копированием всего содержимого каталога данных MySQL. Этот метод не рекомендуется для производственных систем, поскольку он блокирует всю базу данных на время этой операции.