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