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

А остальные параметры, которые обычно указываются в файле my.ini или my.cnf, здесь указать не получится. Однако, вариант есть.
Параметры конфигурации
Для этого, при разворачивании приложения MariaDB в TrueNAS, необходимо разместить директорию /var/lib/mysql/ на отдельном датасете.
В первую очередь перед установкой приложения создадим Dataset для БД. Add Dataset. Назовём его "DB".
В конфигурации хранилища указываем Dataset, который создан специально для хранения баз: DB.
Подробнее про развёртывание MariaDB можно прочитать здесь:
В итоге мы можем каким-то образом разместить настройку СУБД, имея доступ к папке /var/lib/mysql/. К примеру, нам необходимо указать параметр:
[mysqld]
lower_case_table_names=1Куда его можно вписать? Проверим. Запустим MariaDB в TrueNAS и перейдём в консоль контейнера.

Выполняем:
mariadb --verbose --help | grep -A 1 "Default options"
И видим, что MariaDB ищет конфигурационные параметры в файлах:
- /etc/my.cnf
- /etc/mysql/my.cnf
- ~/.my.cnf
Первые два пути нам недоступны, а что такое тильда?
echo $HOME
А это у нас как раз директория /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Указываем внутри нужные нам параметры:

Перезапускаем контейнер и проверяем.
SHOW VARIABLES LIKE 'lower%';
Итак, нужный нам параметр применился.


