Назад | Перейти на главную страницу

Как изменить каталог данных для MariaDB?

Я установил MariaDB и изменил каталог данных на / tank / mysql, и это сработало.

После этого мне пришлось переустановить MariaDB, и я использовал:

apt -y remove --purge mariadb-server
apt -y install mariadb-server

и все прошло нормально.

Проблема теперь в том, что datadir не изменяется.

Файл, в котором я внес изменения, такой же, как и раньше: /etc/mysql/mariadb.conf.d/60-mariadb.cnf

Код:

[mysqld]
datadir=/tank/mysql

MariaDB указывает на / var / lib / mysql

Я знаю, что лучшим решением было бы переустановить весь сервер ubuntu, но сейчас это не вариант.

Если есть еще что-нибудь, что я могу написать, чтобы улучшить свой вопрос, пожалуйста, предложите.

Ни один файл не содержит "/ var / lib / mysql" в папке / etc / mysql.

У меня уже была эта проблема после переустановки на другом сервере, и я не мог ее решить, поэтому в конце я переустановил весь сервер.

Информация:

ОС: сервер Ubuntu 16.04

Версия MariaDB: 10.2.15

В Debian 9 я решил, запустив:

mysql_install_db --datadir=YOURDATADIR

затем изменение datadir вариант в

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

(или любой другой файл, содержащий datadir option) в соответствии с YOURDATADIR выше и перезапустить mariadb.service

Поздравляем @CroisOS!

Для тех, кто сталкивался с подобной проблемой, вот что я сделал. Стоит проверить, так как это может быть ваша ситуация.

Во-первых, вы должны выяснить, не содержит ли другой файл datadir директива (это просто пример). Бегать grep -R datadir /etc/mysql/.

Однажды я тоже боролся с такой проблемой, потому что systemctl stop|restart mysqld.service не работал (служба не была остановлена ​​и не перезапущена вообще). Решение было mysqladmin shutdown. Убедитесь, что служба больше не работает ( ps faux | grep mysqld ). Затем снова перезапустите службу с помощью systemctl.

Проверьте глобальную переменную, соответствующую директиве, в консоли mariadb, чтобы изменения вступили в силу.

Наконец-то мне удалось решить.

ПРИМЕЧАНИЕ: это решение только для изменения datadir после переустановки MariaDB, если MariaDB была изначально установлена, она должна работать при обычном изменении datadir в файле cnf.

# that failed
apt -y remove --purge mariadb-server

apt -y remove --purge mariadb-server-10.2
apt -y autoremove
rm -fr /etc/mysql/
rm -fr /var/lib/mysql
rm /usr/bin/mysql
reboot

# in this moment datadir is /var/lib/mysql
apt -y install mariadb-server

/etc/init.d/mysql stop
cp -R /var/lib/mysql/ /tank/mysql/
cd /tank/mysql/
rm ibdata1
rm ib_*

Ни один файл не содержит "/ var / lib / mysql" в папке / etc / mysql.

Вполне возможно, что / var / lib / mysql скомпилирован по умолчанию для использования в случае, если datadir не определен иначе.

Вам следует изучить каскад файлов .cnf и убедиться, что файл /etc/mysql/mariadb.conf.d/60-mariadb.cnf действительно включен.

Запустите команду mysql --help и найдите строку вроде

Параметры по умолчанию считываются из следующих файлов в указанном порядке: /etc/mysql/my.cnf /etc/my.cnf ~ / .my.cnf

Найдите каждый файл и убедитесь, что, если они существуют, один включает /etc/mysql/mariadb.conf.d/*.cnf или похожие. Если он отсутствует, вы должны его добавить.