Настройка 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_SYSCONFDIRcmakeне был определен, 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_SYSCONFDIRcmakeбыл определен, 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
См. также
© 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/