Страницы

Поиск по вопросам

четверг, 30 мая 2019 г.

Как восстановить базу данных из *.MYD *MYI *FRM?

У нас упал сайт и хостер предоставил данные файлы для восстановления.
Какие данные, кроме упомянутых файлов, потребуются для восстановления?


Ответ

Какие данные, кроме упомянутых файлов, потребуются для восстановления?
если все таблицы хранились в вашей базе данных только с использованием движка myisam, то перечисленных файлов, по идее, должно быть достаточно
Each MyISAM table is stored on disk in three files. The files have names that begin with the table name and have an extension to indicate the file type. An .frm file stores the table format. The data file has an .MYD (MYData) extension. The index file has an .MYI (MYIndex) extension.
разве что ещё файл db.opt потребуется с глобальными для базы данных настройками (типа набора символов по умолчанию и т.п.).

все эти файлы хранятся в каталоге, носящем имя базы данных (он расположен обычно в каталоге с данными mysqld: часто это /var/lib/mysql). вот полное содержимое этого каталога (носящего имя вашей базы данных) вам и потребуется.
скопируйте этот каталог внуть каталога с данными mysqld (выставив каталогу и файлам права и принадлежность как у «соседних» баз данных) и перезапустите mysqld — сервер после этого должен «подхватить» новую базу данных (она должна быть видна в списке, выдаваемом командой show databases).

если же хотя бы одна таблица использовала довольно популярный ныне движок innodb, то ситуация несколько сложнее. описание таблицы, понятно, хранилось в каталоге базы данных в файле имя-таблицы.frm. а вот сами данные таблицы могли храниться в существенно разных местах:
если глобальная конфигурационная переменная на старом сервере innodb_file_per_table имела значение off, то данные всех таблиц из всех баз данных хранились в одном файле, и хостер вряд ли его вам предоставит. если же эта глобальная переменная была установлена в on, то данные для каждой innodb-таблицы хранились в файлах имя-таблицы.ibd внутри каталога с вашей базой данных.

Комментариев нет:

Отправить комментарий