Spec-Zone.ru › MariaDB

Настройка MariaDB с файлами параметров

Вы можете настроить MariaDB так, как вам нужно, настроив сервер с помощью файлов параметров MariaDB. Файл параметров MariaDB по умолчанию называется my.cnf (или mariadb.cnf) в системах Unix-подобного типа и my.ini в Windows. В зависимости от того, как вы установили MariaDB, файл параметров по умолчанию может находиться в нескольких местах или вообще отсутствовать.

Глобальные параметры, связанные с файлами параметров

Следующие параметры относятся к тому, как MariaDB обрабатывает файлы параметров. Эти параметры можно использовать с большинством командных инструментов MariaDB, а не только с mysqld. Они должны быть заданы как первый аргумент в командной строке:

Параметр Описание
--print-defaults Чтение параметров из файлов параметров, вывод всех значений параметров и выход из программы.
--no-defaults Не читать параметры из файла параметров.
--defaults-file =path Чтение параметров только из указанного файла параметров.
--defaults-extra-file =path Чтение этого дополнительного файла параметров после того, как будут прочитаны все остальные файлы параметров.
--defaults-group-suffix =suffix В дополнение к группам параметров по умолчанию, также читать группы параметров с заданным суффиксом.

Расположение файлов параметров по умолчанию

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

Для получения точного списка файлов параметров, считываемых на вашей системе конкретной программой, вы можете выполнить:

$program --help --verbose

Например:

$ mysqld --help --verbose
mysqld  Ver 10.3.13-MariaDB-log for Linux on x86_64 (MariaDB Server)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Starts the MariaDB database server.

Usage: mysqld [OPTIONS]

Default options are read from the following files in the given order:
/etc/my.cnf ~/.my.cnf
The following groups are read: mysqld server mysqld-10.3 mariadb mariadb-10.3 client-server galera
....

Файлы параметров каждый раз сканируются один раз в порядке, заданном --help --verbose. Эффект параметров конфигурации такой же, как если бы они были заданы как параметры командной строки в порядке их обнаружения.

Расположение файлов параметров по умолчанию в Linux, Unix, Mac

В Linux, Unix или Mac OS X файл параметров по умолчанию называется my.cnf. MariaDB ищет файл параметров MariaDB в указанных ниже местах и порядке.

Расположение зависит от того, был ли определен параметр DEFAULT_SYSCONFDIR cmake при компиляции MariaDB. Этот параметр обычно определяется как /etc при компиляции пакетов RPM, но обычно не определяется при компиляции пакетов DEB или бинарных архивов tar.

  • Когда параметр DEFAULT_SYSCONFDIR cmake не был определен, MariaDB ищет файл параметров MariaDB в следующих расположениях в следующем порядке:
Расположение Область
/etc/my.cnf Глобальная
/etc/mysql/my.cnf Глобальная
$MARIADB_HOME/my.cnf Сервер
$MYSQL_HOME/my.cnf Сервер
defaults-extra-file Файл, указанный параметром --defaults-extra-file, если таковой имеется
~/.my.cnf Пользовательская
  • Когда параметр DEFAULT_SYSCONFDIR cmake был определен, MariaDB ищет файл параметров MariaDB в следующих расположениях в следующем порядке:
Расположение Область
DEFAULT_SYSCONFDIR/my.cnf Глобальная
$MARIADB_HOME/my.cnf Сервер (с MariaDB 10.6)
$MYSQL_HOME/my.cnf Сервер
defaults-extra-file Файл, указанный параметром --defaults-extra-file, если таковой имеется
~/.my.cnf Пользовательская
  • MARIADB_HOME (с MariaDB 10.6) или MYSQL_HOME — переменная окружения, содержащая путь к каталогу, содержащему серверный файл my.cnf. Если MYSQL_HOME не задан, и сервер запускается с помощью mysqld_safe, MYSQL_HOME устанавливается следующим образом:
    • Если файл my.cnf находится в каталоге данных MariaDB, но не в базовом каталоге MariaDB, MYSQL_HOME устанавливается в каталог данных MariaDB.
    • В противном случае, MYSQL_HOME устанавливается в базовый каталог MariaDB.
  • Обратите внимание, что если MARIADB_HOME задан (с MariaDB 10.6), MYSQL_HOME не будет использоваться, даже если он задан.

Расположение файлов параметров по умолчанию в Windows

В Windows файл параметров может называться my.ini или my.cnf. MariaDB ищет файл параметров MariaDB в следующих расположениях в следующем порядке:

Расположение Область
System Windows Directory\my.ini Глобальная
System Windows Directory\my.cnf Глобальная
Windows Directory\my.ini Глобальная
Windows Directory\my.cnf Глобальная
C:\my.ini Глобальная
C:\my.cnf Глобальная
INSTALLDIR\my.ini Сервер
INSTALLDIR\my.cnf Сервер
INSTALLDIR\data\my.ini Сервер
INSTALLDIR\data\my.cnf Сервер
%MARIADB_HOME%\my.ini Сервер (с MariaDB 10.6)
%MARIADB_HOME%\my.cnf Сервер (с MariaDB 10.6)
%MYSQL_HOME%\my.ini Сервер
%MYSQL_HOME%\my.cnf Сервер
defaults-extra-file Файл, указанный параметром --defaults-extra-file, если таковой имеется
  • System Windows Directory — это каталог, возвращаемый функцией GetSystemWindowsDirectory. Значение обычно C:\Windows. Чтобы найти его конкретное значение в вашей системе, откройте cmd.exe и выполните:
    echo %WINDIR%
  • Windows Directory — это каталог, возвращаемый функцией GetWindowsDirectory. Значение может быть частным каталогом Windows Directory для приложения, или оно может быть таким же, как System Windows Directory , возвращаемое функцией GetSystemWindowsDirectory .
  • INSTALLDIR — это родительский каталог каталога, в котором находится mysqld.exe. Например, если mysqld.exe находится в C:\Program Files\MariaDB 10.3\bin, то INSTALLDIR будет C:\Program Files\MariaDB 10.3.
  • MARIADB_HOME (с MariaDB 10.6) или MYSQL_HOME — переменная среды, содержащая путь к каталогу, содержащему серверный файл my.cnf .
  • Обратите внимание, что если MARIADB_HOME задан (с MariaDB 10.6), MYSQL_HOME не будет использоваться, даже если он задан.

Иерархия файлов параметров по умолчанию

MariaDB будет искать во всех вышеперечисленных расположениях в порядке следования, даже если уже был найден файл параметров, и возможно, что несколько файлов параметров могут существовать. Например, вы можете иметь файл параметров в /etc/my.cnf с глобальными настройками для всех серверов, а затем другой файл параметров в ~/.my.cnf (то есть в домашнем каталоге вашей учетной записи), который будет содержать дополнительные настройки (или переопределять ранее заданные настройки), специфичные только для этого пользователя.

Файлы параметров обычно необязательны. Однако, если установлен параметр --defaults-file, и файл не существует, MariaDB выдаст ошибку. Если установлен параметр --defaults-file, тогда MariaDB будет *только* читать файл параметров, на который ссылается этот параметр.

Если параметр или системная переменная не заданы явно, они будут установлены по умолчанию. См. Переменные сервера для получения полного списка всех переменных сервера и их значений по умолчанию.

Расположение пользовательских файлов параметров

MariaDB можно настроить на чтение параметров из пользовательских файлов параметров с помощью следующих аргументов командной строки. Эти аргументы командной строки могут использоваться с большинством командных инструментов MariaDB, а не только с mysqld. Они должны быть заданы как первый аргумент в командной строке:

Параметр Описание
--defaults-file =path Чтение параметров только из данного файла параметров.
--defaults-extra-file =path Чтение этого дополнительного файла параметров после всех других файлов параметров.

Синтаксис файла параметров

Синтаксис файлов параметров MariaDB:

  • Строки, начинающиеся с символа #, являются комментариями.
  • Пустые строки игнорируются.
  • Группы опций используют синтаксис [group-name]. Дополнительную информацию о доступных группах опций см. в разделе Группы опций ниже.
  • Одна и та же группа опций может встречаться несколько раз.
  • Директива !include может использоваться для включения других файлов опций. Дополнительную информацию об этом синтаксисе см. в разделе Включение файлов опций ниже.
  • Директива !includedir может использоваться для включения всех .cnf файлов (и потенциально .ini файлов) в заданной директории. Файлы опций в директории считываются в алфавитном порядке. Дополнительную информацию об этом синтаксисе см. в разделе Включение директорий с файлами опций ниже.
  • Тире (-) и подчеркивания (_) в опциях взаимозаменяемы.
  • Для цитирования значений можно использовать двойные кавычки.
  • \n, \r, \t, \b, \s, \", \', и \\ распознаются как управляющие символы новой строки, возврата каретки, табуляции, удаления, пробела, двойной кавычки, одинарной кавычки и обратной косой черты соответственно.
  • Поддерживаются определённые префиксы опций. Сведения о доступных префиксах опций см. в разделе Префиксы опций ниже.
  • Сведения о доступных опциях см. в разделе Опции ниже.

Группы опций

Программа MariaDB может считывать опции из одной или нескольких групп опций. Для получения точного списка групп опций, считываемых конкретной программой на вашей системе, вы можете выполнить:

$program --help --verbose

Например:

$ mysqld --help --verbose
mysqld  Ver 10.3.13-MariaDB-log for Linux on x86_64 (MariaDB Server)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Starts the MariaDB database server.

Usage: mysqld [OPTIONS]

Default options are read from the following files in the given order:
/etc/my.cnf ~/.my.cnf
The following groups are read: mysqld server mysqld-10.3 mariadb mariadb-10.3 client-server galera
....

Группы опций сервера

Программы MariaDB считывают опции сервера из следующих групп опций сервера:

Группа Описание
[client-server] Опции, считываемые всеми клиентами MariaDB (клиентские программы) и сервером MariaDB. Это полезно для опций, таких как сокет и порт, которые являются общими для сервера и клиентов.
[server] Опции, считываемые сервером MariaDB.
[mysqld] Опции, считываемые mysqld, что включает как сервер MariaDB, так и сервер MySQL.
[mysqld-X.Y] Опции, считываемые определённой версией mysqld, которая включает как сервер MariaDB, так и сервер MySQL. Например, [mysqld-10.4].
[mariadb] Опции, считываемые сервером MariaDB.
[mariadb-X.Y] Опции, считываемые определённой версией сервера MariaDB. Например, [mariadb-10.4].
[mariadbd] Опции, считываемые сервером MariaDB. Доступно начиная с MariaDB 10.4.6.
[mariadbd-X.Y] Опции, считываемые определённой версией сервера MariaDB. Например, [mariadbd-10.4]. Доступно начиная с MariaDB 10.4.6.
[galera] Опции, считываемые сервером MariaDB, но только если он скомпилирован с поддержкой кластера Galera. В MariaDB 10.1 и более поздних версиях все сборки на Linux скомпилированы с поддержкой кластера Galera. При использовании одной из этих сборок опции из этой группы опций считываются, даже если функциональность кластера Galera не включена.

X.Y в примерах выше относятся к основной (главному.вспомогательному) версия сервера. Например, MariaDB 10.3.10 будет считывать из [mariadb-10.3]. Используя синтаксис mariadb-X.Y, можно создать файлы опций, содержащие только опции MariaDB в группах опций, специфичных для MariaDB. Это позволит файлу опций работать как для MariaDB, так и для MySQL.

Группы опций клиента

Программы MariaDB считывают опции клиента из следующих групп опций:

Группа Описание
[client] Опции, считываемые всеми клиентами MariaDB и MySQL (клиентские программы), что включает как клиентов MariaDB, так и MySQL. Например, mysqldump.
[client-server] Опции, считываемые всеми клиентами MariaDB (клиентские программы) и сервером MariaDB. Это полезно для опций, таких как сокет и порт, которые являются общими для сервера и клиентов.
[client-mariadb] Опции, считываемые всеми клиентскими программами MariaDB.

Группы опций, специфичные для инструментов

Многие инструменты MariaDB также считывают опции из своих собственных групп опций. Многие из них перечислены ниже:

Группа Описание
[mysqld_safe] Опции, считываемые mysqld_safe, которые включают как сервер MariaDB, так и сервер MySQL.
[safe_mysqld] Опции, считываемые mysqld_safe, которые включают как сервер MariaDB, так и сервер MySQL.
[mariadb_safe] Опции, считываемые mysqld_safe сервером MariaDB.
[mariadb-safe] Опции, считываемые mysqld_safe сервером MariaDB. Доступно начиная с MariaDB 10.4.6.
[mariabackup] Опции, считываемые Mariabackup. Доступно начиная с MariaDB 10.1.31 и MariaDB 10.2.13.
[xtrabackup] Опции, считываемые Mariabackup и Percona XtraBackup.
[mysql_upgrade] Опции, считываемые mysql_upgrade, которые включают как сервер MariaDB, так и сервер MySQL.
[mariadb-upgrade] Опции, считываемые mariadb-upgrade. Доступно начиная с MariaDB 10.4.6.
[sst] Специальные опции, считываемые методом mariabackup SST и методом xtrabackup-v2 SST.
[mysql] Опции, считываемые mysql, которые включают как сервер MariaDB, так и сервер MySQL.
[mariadb-client] Опции, считываемые mariadb. Доступно начиная с MariaDB 10.4.6.
[mysqldump] Опции, считываемые mysqldump, которые включают как сервер MariaDB, так и сервер MySQL.
[mariadb-dump] Опции, считываемые mariadb-dump. Доступно начиная с MariaDB 10.4.6.
[mysqlimport] Опции, считываемые mysqlimport, которые включают как сервер MariaDB, так и сервер MySQL.
[mariadb-import] Опции, считываемые mariadb-import. Доступно начиная с MariaDB 10.4.6.
[mysqlbinlog] Опции, считываемые mysqlbinlog, которые включают как сервер MariaDB, так и сервер MySQL.
[mariadb-binlog] Опции, считываемые mariadb-binlog. Доступно начиная с MariaDB 10.4.6.
[mysqladmin] Опции, считываемые mysqladmin, которые включают как сервер MariaDB, так и сервер MySQL.
[mariadb-admin] Опции, считываемые mariadb-admin. Доступно начиная с MariaDB 10.4.6.
[mysqlshow] Опции, считываемые mysqlshow, которые включают как сервер MariaDB, так и сервер MySQL.
[mariadb-show] Опции, считываемые mariadb-show. Доступно начиная с MariaDB 10.4.6.
[mysqlcheck] Опции, считываемые mariadb-check, которые включают как сервер MariaDB, так и сервер MySQL.
[mariadb-check] Опции, считываемые mariadb-check. Доступно начиная с MariaDB 10.4.6.
[mysqlslap] Опции, считываемые mysqlslap, которые включают как сервер MariaDB, так и сервер MySQL.
[mariadb-slap] Опции, считываемые mariadb-slap. Доступно начиная с MariaDB 10.4.6.
[odbc] Опции, считываемые MariaDB Connector/ODBC, но только если параметр USE_MYCNF был установлен.

Пользовательские суффиксы групп опций

MariaDB можно настроить на чтение опций из групп опций с пользовательским суффиксом, предоставив следующий аргумент командной строки. Этот аргумент командной строки можно использовать со многими командными инструментами MariaDB, а не только с mysqld. Его необходимо указать в качестве первого аргумента в командной строке:

Опция Описание
--defaults-group-suffix =suffix В дополнение к группам опций по умолчанию, также читать группы опций с заданным суффиксом.

Суффикс группы по умолчанию также можно указать с помощью MYSQL_GROUP_SUFFIX переменной среды.

Включение файлов опций

Можно включить дополнительные файлы опций из другого файла опций. Например, чтобы включить /etc/mysql/dbserver1.cnf, файл опций может содержать:

[mariadb]
...
!include /etc/mysql/dbserver1.cnf

Включение каталогов файлов опций

Также можно включить все файлы опций в каталоге из другого файла опций. Например, чтобы включить все файлы опций в /etc/my.cnf.d/, файл опций может содержать:

[mariadb]
...
!includedir /etc/my.cnf.d/

Файлы опций внутри каталога читаются в алфавитном порядке.

Все имена файлов опций должны заканчиваться .cnf в системах Unix-подобных операционных системах. В Windows все имена файлов опций должны заканчиваться .cnf или .ini.

Проверка параметров программы

Вы можете проверить, какие опции будет использовать данная программа, используя --print-defaults аргумент командной строки:

Опция Описание
--print-defaults Читать опции из файлов опций, вывести все значения опций и затем выйти из программы.

Этот аргумент командной строки может использоваться с большинством командных инструментов MariaDB, а не только с mysqld. Он должен быть задан в качестве первого аргумента в командной строке. Например:

$ mariadb-dump --print-defaults
mariadb-dump would have been started with the following arguments:
--ssl_cert=/etc/my.cnf.d/certificates/client-cert.pem --ssl_key=/etc/my.cnf.d/certificates/client-key.pem --ssl_ca=/etc/my.cnf.d/certificates/ca.pem --ssl-verify-server-cert --max_allowed_packet=1GB

Вы также можете проверить, какие опции будет использовать данная программа, используя утилиту my_print_defaults и указав имена групп опций, которые считывает программа. Например:

$ my_print_defaults mariadb-dump client client-server client-mariadb
--ssl_cert=/etc/my.cnf.d/certificates/client-cert.pem
--ssl_key=/etc/my.cnf.d/certificates/client-key.pem
--ssl_ca=/etc/my.cnf.d/certificates/ca.pem
--ssl-verify-server-cert
--max_allowed_packet=1GB

Командная опция my_print_defaults утилиты --mysqld предоставляет сокращение для ссылки на все группы опций сервера:

$ my_print_defaults --mysqld
--log_bin=mariadb-bin
--log_slave_updates=ON
--ssl_cert=/etc/my.cnf.d/certificates/server-cert.pem
--ssl_key=/etc/my.cnf.d/certificates/server-key.pem
--ssl_ca=/etc/my.cnf.d/certificates/ca.pem

Файл опций аутентификации MySQL 5.6 с зашифрованными данными

MySQL 5.6 и выше поддерживают файл опций аутентификации с зашифрованными данными, называемый .mylogin.cnf, который создаётся с помощью .mylogin.cnf.

MariaDB не поддерживает эту функцию. Пароли в файле .mylogin.cnf MySQL просто зашифровываются, а не шифруются, поэтому эта функция не добавляет существенной безопасности. Скорее всего, она даст пользователям ложное чувство безопасности, а не обеспечит реальную защиту.

Префиксы опций

MariaDB поддерживает определенные префиксы, которые можно использовать с опциями. Поддерживаемые префиксы опций:

Префикс опции Описание
autoset Автоматически устанавливает значение опции. Поддерживается только для определенных опций. Доступно в MariaDB 10.1.7 и более поздних версиях.
disable Для всех булевых опций отключает настройку (эквивалентно установке в 0). То же, что и skip.
enable Для всех булевых опций включает настройку (эквивалентно установке в 1).
loose Не генерировать ошибку, если опция не существует.
maximum Устанавливает максимальное значение для опции.
skip Для всех булевых опций отключает настройку (эквивалентно установке в 0). То же, что и disable.

Например:

[mariadb]
...
# determine a good value for open_files_limit automatically
autoset_open_files_limit

# disable the unix socket plugin
disable_unix_socket

# enable the slow query log
enable_slow_query_log

# don't produce an error if these options don't exist
loose_file_key_management_filename = /etc/mysql/encryption/keyfile.enc
loose_file_key_management_filekey = FILE:/etc/mysql/encryption/keyfile.key
loose_file_key_management_encryption_algorithm = AES_CTR

# set max_allowed_packet to maximum value
maximum_max_allowed_packet

# disable external locking for MyISAM
skip_external_locking

Опции

Тире (-) и подчёркивания (_) в опциях взаимозаменяемы.

Если опция не установлена явно, сервер или клиент просто используют значение по умолчанию для этой опции.

Опции сервера MariaDB

Опции сервера MariaDB можно установить в группах опций сервера.

Список опций, которые можно установить для MariaDB Server, см. в списке опций для mysqld.

Большинство системных переменных сервера также можно установить в файле опций MariaDB.

Опции клиента MariaDB

Опции клиента MariaDB можно установить в группах опций клиента.

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

Примеры файлов опций

В большинстве установок MariaDB есть образец файла опций MariaDB под названием my-default.cnf. В более старых версиях вы также могли найти следующие файлы опций:

  • my-small.cnf
  • my-medium.cnf
  • my-large.cnf
  • my-huge.cnf

Однако эти файлы опций сейчас очень устарели для современных серверов, поэтому они были удалены в MariaDB 10.3.1.

В исходных дистрибутивах образцы файлов опций обычно находятся в каталоге support-files, а в других дистрибутивах файлы опций обычно находятся в каталоге share/mysql относительно каталога основной установки MariaDB.

Вы можете скопировать один из этих образцов файлов опций MariaDB и использовать его как основу для создания основного файла опций вашего сервера MariaDB.

Пример минимального файла опций

Следующий пример минимального файла my.cnf, который вы можете использовать для тестирования MariaDB.

[client-server]
# Uncomment these if you want to use a nonstandard connection to MariaDB
#socket=/tmp/mysql.sock
#port=3306

# This will be passed to all MariaDB clients
[client]
#password=my_password

# The MariaDB server
[mysqld]
# Directory where you want to put your data
data=/usr/local/mysql/var
# Directory for the errmsg.sys file in the language you want to use
language=/usr/local/share/mysql/english

# This is the prefix name to be used for all log, error and replication files
log-basename=mysqld

# Enable logging by default to help find problems
general-log
log-slow-queries

Пример гибридного файла опций

Следующий фрагмент файла опций, который можно использовать, если вы хотите работать как с MySQL, так и с MariaDB.

# Example mysql config file.

[client-server]
socket=/tmp/mysql-dbug.sock
port=3307

# This will be passed to all mariadb clients
[client]
password=my_password

# Here are entries for some specific programs
# The following values assume you have at least 32M ram

# The MariaDB server
[mysqld]
temp-pool
key_buffer_size=16M
datadir=/my/mysqldata
loose-innodb_file_per_table

[mariadb]
datadir=/my/data
default-storage-engine=aria
loose-mutex-deadlock-detector
max-connections=20

[mariadb-5.5]
language=/my/maria-5.5/sql/share/english/
socket=/tmp/mysql-dbug.sock
port=3307

[mariadb-10.1]
language=/my/maria-10.1/sql/share/english/
socket=/tmp/mysql2-dbug.sock

[mysqldump]
quick
max_allowed_packet=16M

[mysql]
no-auto-rehash
loose-abort-source-on-error

См. также

  • Настройка MariaDB Connector/C с помощью файлов опций
  • Устранение неполадок с подключениями
  • Настройка MariaDB для удаленного доступа клиентов
  • MySQL 5.6: Безопасность через самообман?
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/configuring-mariadb-with-option-files/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API