Восстановление базы данных MySQL из физических файлов
возможно ли восстановить базу данных MySQL из физических файлов базы данных. У меня есть каталог, который имеет следующие типы файлов:
клиент.frm
клиент.MYD
клиент.Мии
но еще около 20 таблиц.
Я обычно использую mysqldump или аналогичный инструмент, чтобы получить все в 1 SQL-файле, так как же справиться с этими типами файлов?
7 ответов:
таблица 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. Моя проблема заключается в том, как восстановить базу данных с нечитаемых папок данных MySQL. Теперь я переключаюсь обратно на Win7 OS для среды разработки.
*Примечание У меня есть существующий сервер баз данных, работающий в win7, и мне нужно только несколько файлов базы данных для извлечения из восстановленных файлов. Чтобы успешно восстановление файлов базы данных из ОС Ubuntu мне нужно обновить новый установленный сервер баз данных mysql той же версии из ОС Ubuntu в моей ОС win7, чтобы восстановить все на этом старом сервере баз данных.
сделать еще один новый сервер баз данных mysql той же версии из восстанавливать файлы.
остановите сервер mysql
скопируйте восстановленную папку и вставьте (C:\ProgramData\MySQL\MySQL сервер 5.5\data) база данных mysql есть на хранении.
скопируйте файл ibdata1, расположенный в установленной папке Linux mysql и вставьте его в (C:\ProgramData\MySQL\MySQL сервер 5.5\data). Только за правую или сделайте резервную копию перед заменой.
запустите сервер mysql и проверьте, успешно ли вы восстановились файл базы данных.
чтобы использовать восстановленную базу данных на моем текущем сервере mysql просто экспортируйте восстановленную базу данных и импортируйте ее мой существующий mysql сервер.
надеюсь, что это поможет, потому что я не нашел решение моей проблемы.
Если вы восстанавливаете папку, не забудьте chown файлы в mysql: mysql
chown -R mysql:mysql /var/lib/mysql-data
в противном случае вы получите ошибки при попытке удалить базу данных или добавить новый столбец и т. д..и перезапустить MySQL
service mysql restart
С MySql 5.1 (Win7). Чтобы воссоздать DBs (InnoDbs), Я заменил все содержимое следующих dirs (my.Ини параметры):
datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/" innodb_data_home_dir="C:/MySQL Datafiles/"
после этого я запустил службу MySql и все работает нормально.