Восстановление базы данных MySQL из физических файлов
Возможно ли восстановить базу данных MySQL из файлов физической базы данных. У меня есть каталог, который имеет следующие типы файлов:
client.frm
client.MYD
client.MYI
но еще около 20 таблиц.
- Как сделать резервную копию одной таблицы в базе данных MySQL?
- Как создать резервную копию и восстановить системный буфер обмена в C #?
- Ускорение дампов и импорта mysql
- Можно ли восстановить одну таблицу из полного mysqlump-файла mysql?
- Как восстановить базу данных в SQL Server?
Обычно я использую mysqldump или аналогичный инструмент, чтобы получить все в одном файле SQL, чтобы как можно справиться с этими типами файлов?
Таблица MySQL MyISAM представляет собой комбинацию из трех файлов:
- FRM-файл – это определение таблицы.
- Файл MYD содержит фактические данные.
- Файл MYI – это место, где хранятся индексы, созданные в таблице.
Вы можете восстановить их, скопировав их в папку базы данных (в linux по умолчанию используется /var/lib/mysql/
)
Вы должны сделать это, пока сервер не запущен.
Из ответа @Vicent я уже восстанавливаю базу данных MySQL, как показано ниже:
Шаг 1. Завершение работы сервера Mysql
Шаг 2. Скопируйте базу данных в папку базы данных (в linux по умолчанию используется / var / lib / mysql). Храните одно и то же имя базы данных и одно и то же имя базы данных в режиме mysql.
sudo cp -rf /mnt/ubuntu_426/var/lib/mysql/database1 /var/lib/mysql/
Шаг 3: Измените собственный и измените режим папки:
sudo chown -R mysql:mysql /var/lib/mysql/database1 sudo chmod -R 660 /var/lib/mysql/database1 sudo chown mysql:mysql /var/lib/mysql/database1 sudo chmod 700 /var/lib/mysql/database1
Шаг 4. Скопируйте файл ibdata1 в папку базы данных.
sudo cp /mnt/ubuntu_426/var/lib/mysql/ibdata1 /var/lib/mysql/ sudo chown mysql:mysql /var/lib/mysql/ibdata1
Шаг 5: скопируйте файлы ib_logfile0 и ib_logfile1 в папку базы данных.
sudo cp /mnt/ubuntu_426/var/lib/mysql/ib_logfile0 /var/lib/mysql/ sudo cp /mnt/ubuntu_426/var/lib/mysql/ib_logfile1 /var/lib/mysql/
Помните изменение собственного и изменить корень этих файлов:
sudo chown -R mysql:mysql /var/lib/mysql/ib_logfile0 sudo chown -R mysql:mysql /var/lib/mysql/ib_logfile1
или
sudo chown -R mysql:mysql /var/lib/mysql
Шаг 6 (Необязательно): Мой сайт имеет конфигурацию для хранения файлов в определенном месте, а затем я копирую их в соответствующее место.
Шаг 7: Запустите сервер Mysql. Все возвращается и наслаждается им.
Вот и все.
См. Дополнительную информацию: https://biolinh.wordpress.com/2017/04/01/restoring-mysql-database-from-physical-files-debianubuntu/
У меня такая же проблема, но не удалось восстановить базу данных на основе приведенных выше инструкций.
Я получил только восстановленные базы данных mysql из моей Ubuntu OS. Моя проблема заключается в том, как восстановить мою базу данных с помощью этой нечитаемой базы данных mysql. Теперь я вернусь к ОС win7 для среды разработки.
* ПРИМЕЧАНИЕ. У меня есть существующий сервер баз данных, работающий в win7, и мне нужно всего лишь несколько файлов базы данных для извлечения из восстановленных файлов. Чтобы успешно восстановить файлы базы данных из ОС Ubuntu, мне нужно обновить новую установленную ту же версию сервера баз данных mysql от Ubuntu OS в моей операционной системе win7, чтобы восстановить все на этом старом сервере базы данных.
-
Создайте еще одну новую версию сервера баз данных mysql из восстановленных файлов.
-
Остановить сервер mysql
-
скопируйте восстановленную папку и вставьте в нее (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data) базу данных mysql.
-
скопируйте файл ibdata1, расположенный в установочной папке linux mysql, и вставьте его в (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data). Просто поверх существующего или сделайте резервную копию перед заменой.
-
запустите сервер mysql и проверьте, успешно ли вы восстановили файлы базы данных.
-
Чтобы использовать восстановленную базу данных на моем текущем сервере mysql, просто экспортируйте восстановленную базу данных и импортируйте ее в мой существующий сервер mysql.
Надеюсь, это поможет, потому что я не нашел решения моей проблемы.
Если вы восстанавливаете папку, не забывайте обрабатывать файлы в mysql: mysql
chown -R mysql:mysql /var/lib/mysql-data
в противном случае вы получите ошибки при попытке сбросить базу данных или добавить новый столбец и т. д.
и перезапустить MySQL
service mysql restart
С MySql 5.1 (Win7). Чтобы воссоздать DB (InnoDbs), я заменил все содержимое следующих dirs (my.ini params):
datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/" innodb_data_home_dir="C:/MySQL Datafiles/"
После этого я начал работу с MySql Service, и все работает нормально.
Да! Просто добавьте их в свою папку базы данных (в зависимости от ОС) и запустите команду, такую как «Разрешения на исправление MySQL». Это переустановило базу данных. Смотрите также, что правильные разрешения также установлены в файлах.
Я как-то скопировал эти файлы в папку хранилища баз данных для базы данных mysql, которая работала, запустила db и ждала, что она «восстановит» файлы, а затем извлечет их с помощью mysqldump.