zaLinux.ru

Обновление MariaDB до 10.4.*


С июня 2019 года MariaDB серии 10.4.* начиная с версии 10.4.6 стала стабильным (GA) релизом.

Предыдущей стабильно версией была MariaDB 10.3.

Что нового и какие улучшения были сделаны вы найдёте в документации «Changes and Improvements in MariaDB 10.4». В этой же заметке я хочу рассмотреть практические аспекты обновления до новой мажорной версии, поскольку изменения затронули сброс конфигурации СУБД сервера на стандартные настройки, следовательно, прежде чем перезапустить службу после обновления бинарных файлов, нужно разобраться, что именно поменялось в схеме конфигурации.

Сообщения при обновлении:

предупреждение: /etc/mysql/my.cnf сохранён как /etc/mysql/my.cnf.pacsave
(6/8) обновление mariadb                                   [####################################################################] 100%
:: MariaDB was updated to a new feature release. To update the data run:
   systemctl restart mariadb.service && mariadb-upgrade -u root -p
:: MariaDB configuration layout changed.
   -> The main configuration file now is: /etc/my.cnf
   -> Instantiated services (mariadb@foo.service) do not longer read their
      own configuration file but use group suffix (configuration block
      '[mysqld.foo]') in main configuration file.

На моей системе (Arch Linux) при обновлении до MariaDB до 10.4 главный конфигурационный файл /etc/mysql/my.cnf сохранён как /etc/mysql/my.cnf.pacsave. Затем система написала, что поскольку MariaDB была обновлена до выпуска с новыми возможностями, необходимо обновить данные следующей командой:

systemctl restart mariadb.service && mariadb-upgrade -u root -p

Также было показано предупреждение, что изменена схема конфигурации, что теперь главным конфигурационным файлом является /etc/my.cnf, а Instantiated сервисы (mariadb@foo.service) больше не считывает их собственные конфигурационные файлы, а используют групповой суффикс (блок конфигурации '[mysqld.foo]') в главном конфигурационном файле. Про конкретизированные (Instantiated) службы вы можете более подробно прочитать здесь. Теперь их настройки нужно помещать в главные конфигурационные файлы в соответствующие блоки. Если вы не используете такие службы (например, для запуска нескольких экземпляров СУБД с разными настройками), то с ними вам не нужно ничего делать.


Тем не менее, необходимо настроить главный конфигурационный файл.

Ранее у меня настройки содержались в /etc/my.cnf, теперь же этот файл сохранён в /etc/mysql/my.cnf.pacsave и, следовательно, больше не учитывается.

Новое содержимое /etc/my.cnf:

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

Директива !includedir /etc/my.cnf.d включает в конфигурацию все файлы, расположенные в папке /etc/my.cnf.d.

Структура файла /etc/my.cnf.d/server.cnf:

# из этого раздела настройки считываются демоном и встроенными серверами
[server]

# эти настройки только для отдельного демона mysqld
[mysqld]

#
# * Настройки для Galera
#
[galera]

# настройки для встроенных серверов
[embedded]

# Эта группа настроек считывается только серверами MariaDB, но не учитывается в MySQL.
# Если вы используете один и тот же конфигурационный файл .cnf для MySQL и MariaDB,
# то опции только для MariaDB разместите здесь
[mariadb]

# Эта группа опций считывается только серверами MariaDB-10.4.
# Если вы используете один и тот же конфигурационный файл .cnf для различных версий MariaDB,
# используйте эту группу опций, которую более старые серверы не поймут
[mariadb-10.4]

Вполне возможно, что большая часть настроек у вас использовалась по умолчанию. Тем не менее обратите особое внимание на раздел [mysqld] файла /etc/my.cnf.d/server.cnf, почти наверняка у вас были установлены port и bind-address:

port		= 3306
bind-address = 127.0.0.1

Установка bind-address на локальный адрес положительно влияет на безопасность СУБД.

После настройки конфигурации, перезапустим сервер MariaDB и обновим данные:

sudo systemctl restart mariadb.service
sudo mariadb-upgrade -u root -p


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *