Приключилась неприятная история - один из серверов под Debian 7 полностью умер. Подробности не буду писать, просто скажу, что по факту я смог получить только полный образ виртуальной машины, то есть все файлы, что были на сервере. Дальше мне предстояло не только настроить сервер заново, но и восстановить базу из файлов .frm, потому что использую только таблицы InnoDB.
Сразу к делу:
1. Делаем на всякий случай полный бэкап файлов из /var/lib/mysql куда-нибудь
2. С помощью PhpMyAdmin или Navicat создаем базу с тем же именем, что и на предыдущем сервере. Например, mydb.
3. Останавливаем mysql на сервере - /etc/init.d/mysql stop
4. В директорию /var/lib/mysql из бэкапа со старого сервера заливаем файл ibdata1. Даем права ему rw- rw- --- (это 660) для юзера mysql и группы mysql.
5. В директорию /var/lib/mysql/mydb заливаем .frm файлы с бэкапа от старого сервера. Каждому .frm файлу нужно дать те же права, что и в пункте 4.
6. Стартуем mysql - /etc/init.d/mysql start
Если все прошло хорошо, то mysql стартанет, а в базе появятся таблицы со старыми данными.
Если все плохо, то возвращаем назад из п.1 данные на место и пытаемся найти иной способ.
Сразу оговорюсь - мой метод не панацея для всех возможных случаев, но лично в моей ситуации все сработало как надо. Если кому-то поможет или есть что дополнить - прошу в комментарии.
Сразу к делу:
1. Делаем на всякий случай полный бэкап файлов из /var/lib/mysql куда-нибудь
2. С помощью PhpMyAdmin или Navicat создаем базу с тем же именем, что и на предыдущем сервере. Например, mydb.
3. Останавливаем mysql на сервере - /etc/init.d/mysql stop
4. В директорию /var/lib/mysql из бэкапа со старого сервера заливаем файл ibdata1. Даем права ему rw- rw- --- (это 660) для юзера mysql и группы mysql.
5. В директорию /var/lib/mysql/mydb заливаем .frm файлы с бэкапа от старого сервера. Каждому .frm файлу нужно дать те же права, что и в пункте 4.
6. Стартуем mysql - /etc/init.d/mysql start
Если все прошло хорошо, то mysql стартанет, а в базе появятся таблицы со старыми данными.
Если все плохо, то возвращаем назад из п.1 данные на место и пытаемся найти иной способ.
Сразу оговорюсь - мой метод не панацея для всех возможных случаев, но лично в моей ситуации все сработало как надо. Если кому-то поможет или есть что дополнить - прошу в комментарии.
4 коммент.:
Спасибо. Мне помогло.
Спасибо за разъяснения что и куда кидать, именно это я и искал))
Огромное спасибо!! Самый точный способ в таком случае
Спасибо большое, я уже думал прощай база(
Отправить комментарий