Восстановление файлов базы данных MySQL: советы и инструкции
В этой статье я расскажу о способах восстановления удаленных файлов базы данных MySQL. Узнайте, как вернуть важную информацию с помощью простых шагов и эффективных советов. Не упустите возможность избежать потери данных!
База данных MySQL по умолчанию устанавливается на компьютере в папку не диске С:
C:\Program Files\MySQL\MySQL Server 5.7
Но, данные таблиц хранятся в файлах в другой папке на диске С компьютера, это:
C:\ProgramData\MySQL\MySQL Server 5.7\Data
TРасположение данных файлов указано в меню Server Status приложения MySQL Workbench, в разделе Server Directories.
Для случая с необходимостью восстановления таблиц базы данных будет интересна именно папка с данными конкретной базы данных и файлы, которые в ней размещены.
- Файлы базы данных MySQL
- Как восстановить базу данных MySQL
- Восстановление утерянной или удалённой базы MySQL
- Восстановление повреждённых таблиц базы MySQL с помощью myisamchk
- Вопросы и ответы
- Комментарии
Файлы базы данных MySQL
MySQL совместима с большим количеством форматов файлов, как например: .sql, .arm, .cnf, .dbs, .ddl, .frm, .ibd, .ism, .mrg, .myd, .myi, .mysql, .opt, .phl, .sal, .sqr, .tmd, .arz, .ibz, .ibc, .qbquery, .rul. Но данная статья не об этом. Сегодня нам интересны именно те файлы, в которых хранятся данные и таблицы базы, восстановив которые пользователь будет иметь возможность вернуть важную информацию и избежать её возможной утери в будущем.
Данные каждой базы данных хранятся в папке с её названием, и в зависимости от типа таблицы хранятся в файлах с такими расширениями:
- db.opt – файл в котором хранятся характеристики базы данных, указанные при её создании;
- .frm – файл структуры таблиц;
- .myd – файл, в котором хранятся данные MyISAM таблиц;
- .myi – файл, в котором хранятся индексы MyISAM таблиц;
- .ibd – файл, в котором хранятся данные и индексы InnoDB таблиц.
Как восстановить базу данных MySQL
Восстановление базы данных MySQL это технически не сложный процесс, но он зависит от множества условий. Для пользователей MySQL Workbench предусмотрена функция Экспорта и Импорта/Восстановления данных баз данных.
Кроме этого, возможно создание резервной копии и восстановление базы данных MySQL с помощью mysqldump (которую мы детально описали в одной из наших статей).
mysqldump
Но эти функции больше относятся к созданию резервных копий данных MySQL с помощью встроенных инструментов. Более продвинутым пользователям или тем, которые не воспользовались вовремя функцией резервирования данных базы MySQL, будет также интересен способ создания копий и восстановления данных баз вручную, методом подстановки описанных выше файлов структуры и данных таблиц:
- Создание копии данных таблиц базы MySQL возможно путём копирования файлов структуры и данных (*.opt, *.frm, *.myd, *.myi для MyIsam; *.opt, *.frm, *.ibd для InnoDB) и сохранения их в другой папке.
- Восстановление данных таблиц базы MySQL возможно путём подстановки скопированных раннее файлов структуры и данных в папки уже существующих баз (в нашем случае это две базы: my_db и my_db2).
Восстановление утерянной или удалённой базы MySQL
Так, если по какой-то причине вы удалили базу данных MySQL, переустановили Windows или отформатировали жесткий диск, то восстановить её можно описанным выше способом, путём подставки скопированных раннее файлов базы данных в папку с названием базы:
C:\ProgramData\MySQL\MySQL Server 5.7\Data
Если же пользователем заблаговременно не была создана копия файлов базы данных, то их можно восстановить с помощью Hetman Partition Recovery, после чего перенести в нужную папку описанным выше способом.
Для этого:
-
Запустите Hetman Partition Recovery и просканируйте с его помощью диск на котором хранилась база данных MySQL
-
Найдите и перейдите с помощью программы в папку C:\ProgramData\MySQL\MySQL Server 5.7\Data,
или осуществите поиск необходимых файлов базы данных с помощью функции поиска:
Обратите внимание: файлы с данными и форматами таблиц будут иметь название таблицы, а не базы данных.
-
Восстановите файлы базы данных
-
Перенесите их в папку с названием базы данных.
-
Запустив после этого MySQL Workbench, помещённые в папку базы восстановленные файлы таблиц будут доступны.
Таким же способом можно восстанавливать утерянные файла дампа (*.sql) или его архив (*.zip, *.gzip, *.bzip2).
Восстановление повреждённых таблиц базы MySQL с помощью myisamchk
MyISAM таблицы базы данных MySQL могут быть повреждены в результате неожиданного прерывания процесса записи или отключения компьютера, сбоев и отказов в работе аппаратного или программного обеспечения, а также в случае попытки отладки с помощью myisamchk используемой сервером таблицы.
В результате повреждения из таблицы могут исчезнуть или неправильно отображаться данные, но чаще всего в результате повреждения таблицы пользователи сталкиваются с ошибкой: «Incorrect key file for table: ‘название_таблицы’. Try to repair it»
Для восстановления повреждённых MyISAM таблиц можно использовать команду myisamchk.
Myisamchk работает путём отладки и создания копии .myd файла, с дальнейшей заменой им повреждённого файла. Поэтому, прежде чем использовать данную команду, лучше предварительно создать резервную копию файла таблицы, которую необходимо восстановить.
Так, чтобы восстановить повреждённую таблицу, используйте команду:
myisamchk -r -q ИМЯ_ТАБЛИЦЫ
где, -r -q - это режим быстрого восстановления. В данном случае будет исправлен индексный файл без изменения файла данных. Если в файле данных содержится все необходимое, а удаленные связи указывают на правильные позиции в файле данных, то в результате данной команды таблица будет исправлена.
Если предыдущая команда не даст необходимого результата, то сделайте резервную копию файла данных и выполните команду:
myisamchk -r ИМЯ_ТАБЛИЦЫ
где, -r – это просто режим восстановления. В таком случае из файла данных будут удалены некорректные и утерянные записи, и индексный файл будет создан заново (как описано выше).
Обратите внимание. Если отладку и восстановление таблицы планируется выполнять из командной строки, то предварительно необходимо остановить сервер. Следует отметить, что при выполнении mysqladmin shutdown с удаленного сервера mysqld все еще будет некоторое время работать после завершения mysqladmin, пока не будут остановлены все запросы и сброшены на диск все ключи.
mysqladmin shutdown
1. Повреждение файлов базы данных в результате аварии или несанкционированного доступа.
2. Ошибки при обновлении или миграции базы данных.
3. Ошибки при установке или настройке MySQL.
4. Удаление файлов базы данных вручную.
5. Неверное использование утилит MySQL.
6. Неверное удаление таблиц или базы данных.
7. Ошибки сохранения файлов базы данных.
8. Ошибки сохранения транзакций.
9. Неверное удаление строк, столбцов, представлений, хранимых процедур, триггеров или событий.
1. MySQL Enterprise Backup.
2. MySQL Recovery Toolbox.
3. MySQL Dump Tool.
4. MySQL Restore Tool.
5. MySQL Data Recovery Tool.
6. MySQL Database Recovery Tool.
7. MySQL Repair Toolbox.
8. MySQL Utilities.
9. MySQL Cluster Recovery Tool.
10. MySQL Replication Recovery Tool.
1. Используйте права доступа к файлам базы данных. Установите права доступа, чтобы предотвратить несанкционированное удаление файлов.
2. Используйте резервное копирование. Обязательно создавайте регулярные резервные копии базы данных MySQL, чтобы восстановить удаленные файлы.
3. Используйте систему контроля версий. Вы можете использовать систему контроля версий, чтобы следить за изменениями, вносимыми в файлы базы данных MySQL.