X

Ubuntu: перенос data директории MySql

По-умолчанию, MySQL хранит базы данных в /var/lib/mysql, иногда требуется сменить это расположение перенеся эту папку в другое место, например, на диск большей емкости. Об этом и будет сегодняшняя инструкция..

Останавливаем mysql

systemctl stop mysql

если вдруг в ващем случае mysql сервиса не будет, попробуйте mysqld, mysql-server или mariadb

Далее создаем папку в новом месте, в моем случае

mkdir -p /store/mysql/data

и меняем пользователя на mysql

sudo chown mysql:mysql /store/mysql/data

теперь перемещаем все файлы из /var/lib/mysql/* в /store/mysql/data/*

mv /var/lib/mysql/* /store/mysql/data/

далее открываем файл конфигурации mysql, у меня это

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

**у вас он может быть другой, например /etc/my.cnf или /etc/mysql/my.cnf , ищите файл в котором есть опция datadir в секции [mysqld]

В этом файле, ищем опцию datadir в секции [mysqld] и меняем там путь с

[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

на

[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /store/mysql/data
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

следующее что надо сделать, добавить этот путь в apparmor, открываем файл

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

ищем там

/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

и ниже добавляем

/store/mysql/data/ r,
/store/mysql/data/** rwk,

сохраняем и перезапускаем apparmor

systemctl restart apparmor

и запускаем mysql

systemctl start mysql

Категории: MySQL Базы данных
Тэги: my.cnfmysql