Как восстановить базу данных mysql из физических файлов?

12

Я просто переустановил свою систему, я не делал резервное копирование дампов, но у меня все еще есть физическая папка моих предыдущих установок mysql.

Можно ли использовать его для восстановления и обновления моей текущей конфигурации?

Джон
источник

Ответы:

11

Это возможно, но не предлагается. Если бы я собирался попробовать это, вот как я бы это сделал.

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

  2. Удалите старую установку с помощью mv /var/lib/mysql /var/lib/mysql.orig

  3. rsync или скопируйте новые файлы на место. sudo rsync -av /old/mysql/ /var/lib/mysql/Я предлагаю сохранить исходные файлы в их текущем состоянии на случай, если это не сработает.

  4. sudo chown -R mysql: /var/lib/mysqlи затем запустите MySQL. Проверьте журналы, убедитесь, что все выглядит хорошо, а затем войдите в Mysql. Поэкспериментируйте, чтобы убедиться, что ваши данные там.

Предполагая, что все прошло гладко, вы должны быть настроены. Теперь немедленно сделайте правильную поддержку Mysql, чтобы в следующий раз вам не приходилось делать подобные глупости.

Кашани
источник
1
Я бы осторожно выполнил шаг 2 выше перед шагом 1. Вы хотите убедиться, что установка и запуск mysqld не перезаписывают вашу старую системную базу данных.
malcolmpdx
Неплохо подмечено. Я предположил, что / var / lib / mysql не из оригинальной установки. В любом случае, да, убедитесь, что ваши исходные файлы не находятся в / var / lib / mysql, прежде чем начать это. Вы хотите начать со свежего экземпляра Mysql, прежде чем пытаться загрузить исходные данные.
Кашани
спасибо, я немного изменил шаг, чтобы адаптироваться к моей среде Zend Server CE & MacOS, и это работает!
Джон
@Kashani я следовал этим инструкциям (centos), но на новом сервере я получаю таблицу, чтобы показать, но данные и таблица не ... какие-либо идеи? я вижу все таблицы внутри папки, они просто не отображаются (это также выглядит так, как будто это правильный набор символов)
K2xL
2
@ K2xL Я не уверен, что ты видишь. Если вы создадите новый вопрос с деталями того, что вы видите, и как вы его достигли, я был бы рад взглянуть на него. Помните, что описанный выше метод работает только для всей установки Mysql, а не для отдельной базы данных, поскольку таблицы Innodb содержат данные, хранящиеся в основных файлах ibdata, независимо от того, используете ли вы innodb_file_per_table или нет.
Кашани