Восстановление базы данных MySQL из физических файлов

Возможно ли восстановить базу данных MySQL из файлов физической базы данных. У меня есть каталог, который имеет следующие типы файлов:

client.frm
client.MYD
client.MYI

но еще около 20 таблиц.

Обычно я использую mysqldump или аналогичный инструмент, чтобы получить все в одном файле SQL, чтобы как можно справиться с этими типами файлов?

Ответ 1

Таблица MySQL MyISAM представляет собой комбинацию из трех файлов:

  • Файл FRM - это определение таблицы.
  • В MYD файле хранятся фактические данные.
  • В файле MYI хранятся индексы, созданные в таблице.

Вы можете восстановить их, скопировав их в папку базы данных (в linux по умолчанию используется /var/lib/mysql/)

Вы должны сделать это, пока сервер не запущен.

Ответ 2

У меня та же проблема, но не удалось восстановить базу данных на основе приведенных выше инструкций.

Я получил только восстановленные базы данных 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 сервер.

Надеюсь, это поможет, потому что я не нашел решения моей проблемы.

Ответ 3

Из ответа @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/

Ответ 4

Если вы восстанавливаете папку, не забудьте обработать файлы в mysql: mysql

chown -R mysql:mysql /var/lib/mysql-data

иначе вы получите ошибки при попытке сбросить базу данных или добавить новую колонка и т.д.

и перезапустите MySQL

service mysql restart

Ответ 5

С 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, и все работает нормально.

Ответ 6

Да, это так! Просто добавьте их в свою папку базы данных (в зависимости от ОС) и запустите команду, такую ​​как "Разрешения на исправление MySQL". Это переустановило базу данных. Смотрите также, что правильные разрешения также установлены в файлах.

Ответ 7

Я как-то скопировал эти файлы в папку хранения базы данных для базы данных mysql, которая работала, запустила db и ждала, когда она "восстановит" файлы, а затем извлечет их с помощью mysqldump.