Как забрать дамп БД с аварийного сервера?

Всем привет. На удалённом выделенном сервере сломался 1 из 2-х винчестеров и сервер умер. Т.к. винты были в RAID, я зашёл на сервер в rescue режиме и примонтировал живой винт. Хочу забрать БД с него, но в rescue mode обычные команды не работают, команды mysqldump там нет. Как в этом случае забрать БД? Знаю, что БД физически хранится в папке /mnt/var/lib/mysql/DBName. Скажите, можно просто скопировать файлы *.frm *.MYI *.MYD а затем поместить их по тому же пути в новом сервере? Можно так базы данных переносить? Будет нормально работать? Есть какие-либо подводные камни такого переноса?


Ответы (1 шт):

Автор решения: DiD

Ну я бы посоветовал копировать диск утилитой dd.

Но если вы знаете что копировать...

Точное место расположения БД MYSQL можно посмотреть в конфигах:

grep datadir /etc/my.cnf
grep -r datadir /etc/mysql/

должно выдать что-то вроде

datadir=/var/lib/mysql

или вот так

/etc/mysql/mariadb.conf.d/50-server.cnf:datadir     = /var/lib/mysql

На всякий бывает полезно убедиться что mysql не запущен:

ps -eo cmd,args | grep mysql  # на Linux
ps -ao pid,command | grep mysql  # на BSD

Копировать с правами лучше утилитой tar

tar -cf /tmp/mysql.tar /var/lib/mysql   
→ Ссылка