Перейти к основному содержанию

Перемещение базы данных MariaDB 10 в Ubuntu 22.04

MariaDB

База данных MariaDB 10 при установке на Ubuntu по умолчанию пишется в папку /var/lib/mysql. Со временем база растёт и поднимается вопрос переноса её на другой раздел диска. Перенесём базу данных в /opt/mysql/mysql.

sql

Перенос MariaDB 10

Проверим где находится текущая БД MariaDB.

mysql -u root -p
select @@datadir;

sql

Видим, что файлы базы находятся в /var/lib/mysql/. Чтобы закрыть командную строку MariaDB, введите exit.

exit

Останавливаем сервер MariaDB:

systemctl stop mysql

Алиасы mysql, mariadb, mysqld, mysql.service, mariadb.service, mysqld.service.

Проверяем статус, мы должны убедиться, что сервер MariaDB остановлен:

systemctl status mysql

sql

Видим — Status: "MariaDB server is down".

Перемещаем каталог данных MariaDB

Создадим папку /opt/mysql, в неё будем переносить папку с данными MariaDB.

mkdir /opt/mysql

sql

С помощью rsync переносим MariaDB в другую папку:

rsync -av /var/lib/mysql /opt/mysql

Флаг –a сохраняет привилегии и другие свойства каталога. Флаг –v предоставляет подробный вывод. Теперь внимание, папка /var/lib/mysql теперь находится по адресу /opt/mysql/mysql.

Переименуем старую папку /var/lib/mysql, сохраним её на случай сбоя:

mv /var/lib/mysql /var/lib/mysql.bak

По умолчанию путь настроен в файле /etc/mysql/mariadb.conf.d/50-server.cnf, редактируем.

vim /etc/mysql/mariadb.conf.d/50-server.cnf

sql

Найдите строку datadir=, раскомментируйте и укажите в ней путь к новому каталогу данных /opt/mysql/mysql.

sql

AppArmor

Настроим AppArmor, чтобы предоставить MariaDB право на изменение нового каталога. Редактируем файл /etc/apparmor.d/tunables/alias:

vim /etc/apparmor.d/tunables/alias

Добавим правило:

alias /var/lib/mysql/ -> /opt/mysql/mysql/,

sql

Перезапустим AppArmor:

systemctl restart apparmor

Запуск MariaDB

MariaDB при запуске проверяет наличие директории /var/lib/mysql/mysql.Создадим пустую папку:

mkdir /var/lib/mysql/mysql -p

Запускаем MariaDB:

systemctl start mysql
systemctl status mysql

sql

Проверяем текущий путь:

mysql -u root -p
select @@datadir;

sql

Путь теперь /opt/mysql/mysql/.

Удаление ненужных файлов

rm -R /var/lib/mysql.bak

Теги

 

Похожие материалы

Seafile — установка на Ubuntu 18.04 LTS

Seafile — это личное облачное хранилище для хранения данных в стиле Dropbox. Сегодня мы развернём это хранилище на виртуальном сервере. В качестве гипервизора у нас ESXi 6.7 Update 1.