Ubuntu: перенос data директории MySql
По-умолчанию, MySQL хранит базы данных в /var/lib/mysql, иногда требуется сменить это расположение перенеся эту папку в другое место, например, на диск большей емкости. Об этом и будет сегодняшняя инструкция..
Останавливаем mysql
1 2 3 |
systemctl stop mysql |
если вдруг в ващем случае mysql сервиса не будет, попробуйте mysqld, mysql-server или mariadb
Далее создаем папку в новом месте, в моем случае
1 2 3 |
mkdir -p /store/mysql/data |
и меняем пользователя на mysql
1 2 3 |
sudo chown mysql:mysql /store/mysql/data |
теперь перемещаем все файлы из /var/lib/mysql/* в /store/mysql/data/*
1 2 3 |
mv /var/lib/mysql/* /store/mysql/data/ |
далее открываем файл конфигурации mysql, у меня это
1 2 3 |
/etc/mysql/mysql.conf.d/mysqld.cnf |
**у вас он может быть другой, например /etc/my.cnf или /etc/mysql/my.cnf , ищите файл в котором есть опция datadir в секции [mysqld]
В этом файле, ищем опцию datadir в секции [mysqld] и меняем там путь с
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[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 |
на
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[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, открываем файл
1 2 3 |
/etc/apparmor.d/usr.sbin.mysqld |
ищем там
1 2 3 4 |
/var/lib/mysql/ r, /var/lib/mysql/** rwk, |
и ниже добавляем
1 2 3 4 |
/store/mysql/data/ r, /store/mysql/data/** rwk, |
сохраняем и перезапускаем apparmor
1 2 3 |
systemctl restart apparmor |
и запускаем mysql
1 2 3 |
systemctl start mysql |
Author: | Tags: /
| Rating:
Leave a Reply