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

MariaDB — настройка конфигурационных параметров в TrueNAS

MariaDB

Недавно я устанавливал СУБД MariaDB в TrueNAS и не стал заострять внимание на конфигурационных параметрах. Настройка параметров очень важна, иногда даже невозможно работать с БД без предварительной настройки.

Установка MariaDB в TrueNAS

Переменные окружения

Часть настроек СУБД можно сделать через переменные окружения. 

https://mariadb.com/docs/server/server-management/automated-mariadb-deployment-and-administration/docker-and-mariadb/mariadb-server-docker-official-image-environment-variables

Их можно указать при редактировании приложения в блоке Additional Environment Variables.

sql

А остальные параметры, которые обычно указываются в файле my.ini или my.cnf, здесь указать не получится. Однако, вариант есть.

Параметры конфигурации

Для этого, при разворачивании приложения MariaDB в TrueNAS, необходимо разместить директорию /var/lib/mysql/ на отдельном датасете.

В первую очередь перед установкой приложения создадим Dataset для БД. Add Dataset. Назовём его "DB". 

sql

В конфигурации хранилища указываем Dataset, который создан специально для хранения баз: DB.

sql

Подробнее про развёртывание MariaDB можно прочитать здесь:

Установка MariaDB в TrueNAS

В итоге мы можем каким-то образом разместить настройку СУБД, имея доступ к папке /var/lib/mysql/. К примеру, нам необходимо указать параметр:

[mysqld]
lower_case_table_names=1

Куда его можно вписать? Проверим. Запустим MariaDB в TrueNAS и перейдём в консоль контейнера.

sql

Выполняем:

mariadb --verbose --help | grep -A 1 "Default options"
sql

И видим, что MariaDB ищет конфигурационные параметры в файлах:

  • /etc/my.cnf
  • /etc/mysql/my.cnf
  • ~/.my.cnf

Первые два пути нам недоступны, а что такое тильда?

echo $HOME
sql

А это у нас как раз директория /var/lib/mysql, которую мы вынесли в отдельный Dataset. Т.е. мы можем указать конфигурационные параметры в файле /var/lib/mysql/.my.cnf. Обращаем внимание, что это скрытый файл.

Дальше всё просто, переходим в нужный раздел через shell TrueNAS. К нашему датасету, у вас будут свои пути.

cd /mnt/RAID10/DB

Там уже есть похожий файл .my-healthcheck.cnf, скопируем его, сохранив права доступа:

cp -a .my-healthcheck.cnf .my.cnf

Указываем внутри нужные нам параметры:

sql

Перезапускаем контейнер и проверяем.

SHOW VARIABLES LIKE 'lower%';
sql

Итак, нужный нам параметр применился.

Теги

 

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

MSSQL — уменьшаем Initial Size в tempdb

Срочно понадобилось уменьшить размер tempdb. Можно выполнить сжатие, перезапуск сервера, танцы с бубнами. Всё это уменьшит размер tempdb, но не сделает его меньше Initial Size. И это большая проблема, особенно для тех экземпляров, где база tempdb вынесена в оперативную память.

Теги

MSSQL — ошибка при восстановлении лога транзакций

Пытаюсь настроить зеркало, снимаю полный бэкап и бэкап лога. Затем пытаюсь восстановить базу на зеркале. Бэкап bak нормально восстанавливается, а бэкап trn не восстанавливается с ошибкой: The log in this backup set terminates at LSN 26204000001366300001, which is too early to apply to the database. A more recent log backup that includes LSN 26204000001367500001 can be restored.

Теги