Перенос баз данных mysql в другую папку или раздел

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

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

Первым делом нужно остановить сервер mysql.

# service mysql stop

Затем скопируйте содержимое /var/lib/mysql в новое местоназначение. К примеру, это будет раздел /databases.

# cp -pR /var/lib/mysql /databases

Ключ -p сохраняет исходные параметры файлов: владелец, группа, права доступа и т.д.

Ключ -R отвечает за рекурсивное копирование каталогов.

Завершающим действием будет редактирование конфигурационного файла mysql. Открываем файл /etc/my.cnf и находим переменную datadir. Её значение по-умолчанию:

datadir = /var/lib/mysql

Указываем новое местоположение баз данных:

datadir = /databases/mysql

Запускаем mysql командой service mysql start. Старый каталог можно удалить. Какие-либо ошибки можно найти в лог-файле /var/log/daemon.log, или в файле /var/log/syslog.