Перенос директории MySQL

Когда-то я создавал рейд, монтировал его как раздел дисковой системы и переносил каталог MySQL прямо на него, но в этом случае были минусы, могла появится директория lost+found, его нельзя было использовать для других данных и т.д., после этого я стал переносить директорию MySQL не прямо на раздел, а создавал на нем директорию и переносил в нее.

Смотрите мою статью:
Перенос каталога данных MySQL на новое место

Допустим вы создали рейд и смонтировали его в директорию /srv/raid10/, на момент написания статьи я создал рейд 10 уровня из 10 SSD для высоконагруженной базы данных.
Создадим директорию для MySQL данных:

mkdir /srv/raid10/mysql/

Укажем ей пользователя и группу от имени которых работает MySQL сервер:

chown mysql:mysql /srv/raid10/mysql/ -R
chmod 755 /srv/raid10/mysql

Можно еще так:

chown --reference=/var/lib/mysql /srv/raid10/mysql
chmod --reference=/var/lib/mysql /srv/raid10/mysql

Откроем файл конфигурации MySQL сервера в текстовом редакторе, например:

nano /etc/mysql/mysql.conf.d/mysqld.cnf

Изменим путь к файлам на новое место:

[mysqld]
datadir=/srv/raid10/mysql

Также я указал в файле /etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf:

[mysqld_safe]
datadir=/srv/raid10/mysql

Если используется apparmor, то в его конфигурации также необходимо указать новую директорию, откроем конфигурацию apparmor, например:

nano /etc/apparmor.d/usr.sbin.mysqld

Я нашел строки:

# Allow data dir access
  /var/lib/mysql/ r,
  /var/lib/mysql/** rwk,

И добавил после них:

  /srv/raid10/mysql/ r,
  /srv/raid10/mysql/** rwk,

Чтобы применить изменения перезапустим apparmor:

/etc/init.d/apparmor reload
systemctl restart apparmor

Теперь можно остановить MySQL сервер:

systemctl stop mysql

Копируем данные в новое место:

rsync -av /var/lib/mysql /srv/raid10/mysql

Проверяем:

ls -l /srv/raid10/mysql/

Запускаем MySQL сервер:

systemctl start mysql
systemctl status mysql

Перезагрузим сервер чтобы убедится что рейд массив смонтировался при запуске системы и MySQL сервер успешно запускается:

reboot

Оставьте комментарий

Добавить комментарий