MySQL - возможность доступа к базе данных после удаления файлов .frm и .ibd

У меня есть сервер MySQL, который работает без ошибок. Случайно я удалил все файлы .ibd и .frm. Но сервер не выдает никаких ошибок. Он продолжает вставку данных и все операции даже с использованием командной строки.

Я обнаружил, что он временно использует файлы ibdata для хранения и доступа к записям.

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

Как мне преодолеть этот сценарий. Если какой-либо файл .ibd или .frm удален, он должен вызвать ошибку, если я получу доступ к таблице.


person KJP    schedule 03.08.2015    source источник


Ответы (1)


Попробуйте CHECK TABLE my_table EXTENDED;

Редактировать:

REPAIR TABLE tbl_name EXTENDED должен помочь вам восстановить поврежденные данные. Сначала сделайте резервную копию самой таблицы и всей базы данных.

person Solrac    schedule 03.08.2015
comment
Это ошибка возврата. Но во время выбора/вставки/обновления/удаления он не выдает никаких ошибок. Есть ли способ указать серверу MySQL сбросить записи непосредственно в файл таблицы. Как в my.cnf или любых аргументах при запуске - person KJP; 04.08.2015
comment
Я только что отредактировал свой ответ, добавив оператор REPAIR TABLE... Однако существует оператор FLUSH, который закрывает все открытые таблицы, указатели и т. д. Ссылка на него находится прямо здесь dev.mysql.com/doc/refman/5.6/en/flush.html - person Solrac; 04.08.2015