Spec-Zone.ru › MySQL Router 8.4

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

При запуске MySQL Router считывает список файлов конфигурации, которые вместе составляют конфигурацию маршрутизатора. Требуется как минимум один файл конфигурации.

MySQL Router считывает параметры из файлов конфигурации, которые тесно напоминают традиционный формат INI-файла, с разделами и параметрами. Эти параметры определяют настройки, устанавливаемые при запуске MySQL Router. Для получения информации о синтаксисе файла см. Раздел 4.1, «Синтаксис файла конфигурации».

Параметры определены в разделах, которые определяют значение параметра. Например, user в разделе [DEFAULT] относится к системному пользователю, под которым работает маршрутизатор, а user в разделе [metadata_cache] относится к пользователю MySQL, который получает доступ к метаданным.

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

  • Общие параметры

  • Параметры маршрутизации

  • Параметры состояния назначения

  • Параметры кэша метаданных

  • Параметры ведения журнала

  • Параметры HTTP-сервера

  • Описание параметров файла конфигурации MySQL Router

Общие параметры

Таблица 4.7 [DEFAULT]

Таблица 4.7 [DEFAULT]
Имя параметра Описание Тип
config_folder Путь к файлам конфигурации Строка
connect_timeout Количество секунд до истечения времени ожидания попыток подключения к серверу метаданных Целое число
event_source_name Только платформы Microsoft Windows. Определяет имя службы, используемое MySQL Router, когда он запущен как служба в Microsoft Windows. Строка
keyring_path Путь к файлу хранилища ключей Строка
logging_folder Путь к журналам маршрутизатора Строка
master_key_path Путь к файлу хранилища главного ключа Строка
master_key_reader Скрипт, возвращающий главный ключ в стандартный вывод Строка
master_key_writer Скрипт, считывающий главный ключ из стандартного ввода Строка
max_total_connections Максимальное общее количество разрешенных подключений клиентов от маршрутизатора Целое число
pid_file Местоположение для хранения файла PID Строка
plugin_folder Путь к плагинам маршрутизатора Строка
runtime_folder Путь к временным файлам Строка
sinks Метод(ы) ведения журнала для получения настроенных данных журнала Строка
thread_stack_size Размер в КБ памяти, выделенной для стека каждого потока Целое число
unknown_config_option Тип ошибки, отправляемый, если встречен неизвестный параметр конфигурации Строка
user Системный пользователь, под которым работает MySQL Router Строка

Параметры маршрутизации

Таблица 4.8 [routing]

Таблица 4.8 [routing]
Имя параметра Описание Тип
access_mode Делит чтение и запись в соответствии с категорией транзакции. Строка
bind_address Адрес, к которому привязан маршрутизатор, также использует bind_port, если порт не определен. Строка
bind_port Порт по умолчанию, используемый bind_address. Целое число
client_connect_timeout Максимальное количество секунд для приема пакетов от сервера MySQL. Целое число
client_ssl_ca Путь к файлу сертификата Центра сертификации (CA) в формате PEM. Строка
client_ssl_capath Путь к каталогу, содержащему файлы сертификатов доверенного Центра сертификации (CA) в формате PEM. Строка
client_ssl_cert Путь к сертификату SSL (PEM), используемому для шифрования коммуникаций клиент-маршрутизатор. Строка
client_ssl_cipher Какие шифры разрешены между клиентом и MySQL Router, по умолчанию используется безопасный список шифров SSL. Строка
client_ssl_crl Путь к файлу, содержащему списки отзыва сертификатов в формате PEM. Строка
client_ssl_crlpath Путь к каталогу, содержащему файлы списков отзыва сертификатов в формате PEM. Строка
client_ssl_curves Какие кривые разрешены между клиентом и MySQL Router, по умолчанию используется безопасный список кривых SSL. Строка
client_ssl_dh_params Имя файла параметров DH. По умолчанию не задано. Строка
client_ssl_key Путь к файлу сертификата закрытого ключа SSL (PEM), используемому для шифрования коммуникаций клиент-маршрутизатор. Строка
client_ssl_mode Определяет, должны ли соединения с клиента на MySQL Router быть зашифрованы, по умолчанию PREFERRED, если не установлено. Строка
client_ssl_session_cache_mode Включает или отключает кэш сессий TLS для клиентских соединений. Булево
client_ssl_session_cache_size Количество записей в кэше сессий TLS для клиентских соединений. Целое число
client_ssl_session_cache_timeout Время в секундах, до истечения срока действия сессий TLS в кэше клиентских TLS сессий. Целое число
connect_retry_timeout Количество секунд, которое MySQL Router ожидает перед повторной попыткой подключения к бэкенду. Целое число
connect_timeout Количество секунд, прежде чем попытки подключения к серверу MySQL считаются истекшими. Целое число
connection_sharing Включить совместное использование соединений. Целое число
connection_sharing_delay Количество секунд ожидания перед перемещением неактивного соединения в пул соединений. Целое число
destinations Назначение маршрутизации в виде списка серверов MySQL через запятую или определения метаданных. Строка
dynamic_state Путь к сгенерированному JSON-файлу, используемому для отслеживания и хранения адресов активных серверов метаданных MySQL InnoDB Cluster. Строка
max_connect_errors Максимальное количество неудачных подключений к серверам MySQL перед отказом. Целое число
max_connections Максимальное количество подключений, назначенных маршрутизированному серверу MySQL. Целое число
net_buffer_length Установить net_buffer_length. Целое число
protocol Протокол для подключения к серверу MySQL. Строка
read_timeout Количество секунд до истечения срока ожидания операций чтения на сервере метаданных. Целое число
router_require_enforce В случае включения, извлекает атрибуты текущего пользователя и применяет их. Булево
routing_strategy Стратегия маршрутизации (необязательно), как маршрутизатор выбирает целевые сервера MySQL. Строка
server_ssl_ca Путь к файлу сертификата Центра сертификации (CA) в формате PEM. Строка
server_ssl_capath Путь к каталогу, содержащему файлы сертификатов доверенного Центра сертификации (CA) в формате PEM. Строка
server_ssl_cert Путь к сертификату SSL (PEM), используемому для шифрования коммуникаций маршрутизатор-сервер. Строка
server_ssl_cipher Шифр SSL для сервера. Строка
server_ssl_crl Путь к файлу, содержащему списки отзыва сертификатов в формате PEM. Строка
server_ssl_crlpath Путь к каталогу, содержащему файлы списков отзыва сертификатов в формате PEM. Строка
server_ssl_curves Кривые SSL для сервера. Строка
server_ssl_key Путь к файлу сертификата закрытого ключа SSL (PEM), используемому для шифрования коммуникаций маршрутизатор-сервер. Строка
server_ssl_mode Определяет, должны ли соединения с маршрутизатора на сервер быть зашифрованы. Строка
server_ssl_session_cache_mode Включает или отключает кэш сессий TLS для соединений с сервером. Булево
server_ssl_session_cache_size Количество записей в кэше сессий TLS для соединений с сервером. Целое число
server_ssl_session_cache_timeout Время в секундах, до истечения срока действия сессий TLS в кэше серверных TLS сессий. Целое число
server_ssl_verify Проверка SSL сертификатов, представленных сервером маршрутизатору. Строка
socket Путь к файлу сокета Unix-домена. Строка
wait_for_my_writes Только для чтения запросы ожидают последней написанной транзакции. Целое число
wait_for_my_writes_timeout Максимальное время в секундах ожидания применения написанной транзакции для назначения только для чтения, прежде чем перейти к назначению для чтения и записи. Целое число

Параметры статуса назначения

Таблица 4.9 [destination_status]

Таблица 4.9 [destination_status]
Имя параметра Описание Тип
error_quarantine_interval Определяет интервал в секундах между проверками подключенности изолированных целей. Если подключение возможно, цель снимается с изоляции и становится доступной для подключений. Целое число
error_quarantine_threshold Определяет порог последовательных неудачных попыток подключения к целевому маршрутизатору, прежде чем MySQL Router поместит цель в изоляцию и перестанет использовать её в качестве цели, пока она не будет снята с изоляции механизмом изоляции. Например, если значение равно 5, цель изолируется после 5 последовательных неудачных попыток подключения. Целое число

Таблица 4.10 [connection_pool]

Таблица 4.10 [connection_pool]
Имя параметра Описание Тип
idle_timeout Секунды, в течение которых простаивающее подключение хранится в пуле перед закрытием Целое число
max_idle_server_connections Подключения, которые остаются открытыми после разрыва соединения клиентом Целое число

Параметры кэша метаданных

Таблица 4.11 [metadata_cache]

Таблица 4.11 [metadata_cache]
Имя параметра Описание Тип
auth_cache_refresh_interval Интервал между попытками обновления кэша авторизации Числовое
auth_cache_ttl Время, в течение которого кэш считается недействительным, если не обновляется Числовое
cluster_type Кластер, к которому был запущен объект Router Строка
metadata_cluster Имя кластера InnoDB Строка
router_id Идентификатор маршрутизатора Целое число
ssl_ca Файл CA-сертификатов SSL для проверки сертификата сервера Строка
ssl_capath Директория, содержащая файлы CA-сертификатов SSL для проверки сертификата сервера Строка
ssl_crl Файл CRL SSL для проверки сертификата сервера Строка
ssl_crlpath Директория, содержащая файлы CRL SSL для проверки сертификата сервера Строка
ssl_mode Режим SSL-соединения для подключения к серверу метаданных, по умолчанию PREFERRED, если не указано Строка
tls_version Список TLS-версий, запрашиваемых через запятую, если SSL включен Строка
ttl Время жизни (TTL), в секундах Целое число
use_gr_notifications Поведение уведомлений группы репликации Целое число
user Пользователь MySQL, который имеет доступ к схеме метаданных сервера MySQL Строка

Параметры ведения журнала

Таблица 4.12 [logger]

Таблица 4.12 [logger]
Имя параметра Описание Тип
destination Имя устройства для ведения журнала; может быть использовано с [consolelog] Строка
filename Имя файла журнала; может быть использовано с [logger] и [filelog] Строка
level Уровень ведения журнала Строка
timestamp_precision Точность временной метки логгера Строка

Параметры HTTP-сервера

Таблица 4.13 [http_server]

Таблица 4.13 [http_server]
Имя параметра Описание Тип
bind_address IP-адрес, привязанный к порту HTTP Строка
port TCP-порт HTTP-сервера Целое число
require_realm Имя [http_auth_realm] Строка
ssl_cert Имя файла SSL-сертификата Строка
ssl_cipher Допустимые шифры SSL Строка
ssl_dh_param Имя файла параметров DH Строка
ssl Включает поддержку TLSv1.2 и более поздних версий Целое число
ssl_key Имя файла SSL-ключа Строка
static_folder Директория для статических запросов к HTTP-серверу Строка

Таблица 4.14 [http_auth_realm]

Таблица 4.14 [http_auth_realm]
Имя параметра Описание Тип
backend Имя раздела [http_auth_backend] Строка
method Метод HTTP-аутентификации Строка
name Имя домена для авторизованного пользователя Строка
require Требуется проверка аутентификации Строка

Таблица 4.15 [http_auth_backend]

Таблица 4.15 [http_auth_backend]
Имя параметра Описание Тип
backend Тип бэкенда Строка
filename Имя файла хранилища бэкенда Строка

Таблица 4.16 [io]

Таблица 4.16 [io]
Имя параметра Описание Тип
backend Бэкенд ввода-вывода Строка
threads Количество потоков ввода-вывода Целое число

Таблица 4.17 [keepalive]

Таблица 4.17 [keepalive]
Имя параметра Описание Тип
interval Интервал проверки keepalive в секундах Целое число
runs Ограничивает количество запусков keepalive (0 — без ограничений) Целое число

Описание параметров конфигурационного файла MySQL Router

  • access_mode

    Тип String
    Значение по умолчанию
    Допустимые значения auto

    Определяет, как MySQL Router обрабатывает запросы только для чтения и чтения/записи. Если включено, запросы только для чтения направляются на серверы только для чтения, а запросы чтения/записи — на серверы чтения/записи. См. Раздел 3.5, «Разделение чтения/записи».

  • wait_for_my_writes

    Тип Integer
    Значение по умолчанию 1
    Минимальное значение 0
    Максимальное значение 1

    Запросы только для чтения ожидают последнюю записанную транзакцию.

    См. Раздел 3.5, «Разделение чтения/записи».

  • wait_for_my_writes_timeout

    Тип Integer
    Значение по умолчанию 1
    Минимальное значение 0
    Максимальное значение 4294967295

    Максимальное время ожидания в секундах, пока назначение read_only применит записанную транзакцию, прежде чем вернуться к назначению read_write.

    См. Раздел 3.5, «Разделение чтения/записи».

  • router_require_enforce

    Тип Boolean
    Значение по умолчанию 0

    Если включено, MySQL Router извлекает значения, определенные в атрибуте router_requires пользователя в таблице.

    Атрибут должен иметь следующий формат:

            {router_require: {value}}
          

    Возможные значения:

    • {}: нет требований.

    • {ssl: true}: MySQL Router требует SSL от клиента.

    • {x509: true}: MySQL Router требует SSL и сертификат x509 от клиента.

    • {issuer: ""}: MySQL Router требует SSL, сертификат x509 и центр сертификации от клиента.

    • {ssl: true}: MySQL Router требует SSL, сертификат x509 и субъект сертификата от клиента.

  • event_source_name

    Тип String
    Значение по умолчанию

    Только для платформ Microsoft Windows. Определяет имя службы, используемое MySQL Router, когда он запущен как служба в Microsoft Windows. Это позволяет различать службы при запуске нескольких экземпляров MySQL Router и их сообщения в журнале событий.

    Например:

    [DEFAULT]
    event_source_name = MySQLRouterService
    
  • logging_folder

    Тип String
    Значение по умолчанию $router_basepath

    Путь к каталогу файлов журнала MySQL Router. Файл журнала называется mysqlrouter.log, и он либо создается, либо к нему добавляется информация, если этот файл уже существует.

    Установка logging_folder в пустое значение отправляет сообщения на консоль (stdout).

    Примечание

    Значение logging_folder по умолчанию изменилось с "" на базовый путь Router в MySQL Router 2.1.

    Пример, отправляющий журналы в /var/log/mysqlrouter/mysqlrouter.log:

    [DEFAULT]
    logging_folder = /var/log/mysqlrouter
    

    Когда используется параметр загрузки --directory, созданный конфигурационный файл устанавливает его в $directory/log/.

  • plugin_folder

    Тип String
    Значение по умолчанию (Windows)
    Значение по умолчанию (Другие) /usr/local/lib/mysqlrouter

    Путь к плагинам MySQL Router. Эта папка должна совпадать с каталогом установки MySQL Router. Вам следует устанавливать это только в случае пользовательской установки, где плагины находятся не в стандартном месте установки.

    Значение по умолчанию: /usr/local/lib/mysqlrouter

  • runtime_folder

    Тип String
    Значение по умолчанию (Windows)
    Значение по умолчанию (Другие) /run/mysqlrouter

    Путь к файлам времени выполнения MySQL Router.

    Значение по умолчанию: /run/mysqlrouter

  • master-key-writer

    Формат командной строки --master-key-writer file_path
    Тип String

    Скрипт, который считывает главный ключ из STDIN. Устанавливается с помощью параметра загрузки командной строки --master-key-writer.

  • master-key-reader

    Формат командной строки --master-key-reader file_path
    Тип String

    Скрипт, который возвращает главный ключ в STDOUT. Устанавливается с помощью параметра загрузки командной строки --master-key-reader.

  • config_folder

    Тип String
    Значение по умолчанию (Windows)
    Значение по умолчанию (Другие) /usr/local/etc/mysqlrouter

    Путь к конфигурационным файлам MySQL Router.

    Примечание

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

    Значение по умолчанию: /usr/local/etc/mysqlrouter

  • sinks

    Тип String
    Допустимые значения (Windows)

    consolelog

    filelog

    eventlog

    Допустимые значения (Другие)

    consolelog

    filelog

    syslog

    Приемник(и) (различные методы ведения журнала), в которые отправляется определенный уровень журнала.

    Поддерживаемые значения приемника: consolelog, filelog, eventlog (в Windows) и syslog (в системах на основе Unix). Используйте список, разделенный запятыми, чтобы определить несколько значений.

    Значение по умолчанию: filelog, если параметр logging_folder не пуст в разделе "[DEFAULT]", иначе consolelog.

    Например, чтобы настроить регистратор для использования файла, консоли и журнала событий, каждый из которых использует уровень журнала отладки, настроенный в разделе [logger]:

    [logger]
    level=debug
    sinks=consolelog,eventlog,filelog
    
  • keyring_path

    Type String
    Default Value (Windows) %PROGRAMDATA%\MySQL\MySQL Router\keyring-data
    Default Value (Other) /run/mysql-router/keyring-data

    Указывает на расположение файла keyring.

    Системная загрузка не добавляет этот параметр в сгенерированный конфигурационный файл и предполагает, что файл keyring находится в системном каталоге состояния времени выполнения. Если также используется --directory, то файл keyring хранится в каталоге состояния времени выполнения этого экземпляра, в run/ в указанном каталоге.

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

    Пример использования:

    keyring_path = /opt/myrouter/data/keyring
    master_key_path = /opt/myrouter/mysqlrouter.key
    
  • master_key_path

    Type String
    Default Value (Windows) %PROGRAMDATA%\MySQL\MySQL Router\mysqlrouter.key
    Default Value (Other) /run/mysql-router/mysqlrouter.key

    Расположение файла master key. Этот параметр позволяет автоматическое дешифрование, так как в противном случае его расположение запрашивается при запуске.

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

    Пример использования:

    keyring_path = /opt/myrouter/data/keyring
    master_key_path = /opt/myrouter/mysqlrouter.key
    
  • unknown_config_option

    Type String
    Default Value warning
    Valid Values

    warning

    error

    Определяет поведение MySQL Router при обработке неизвестных параметров конфигурации, таких как опечатки.

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

    [DEFAULT]
    unknown_config_option=warning
    
  • user (system)

    Type String

    Запустите mysqlrouter от имени пользователя с именем user_name или числовым идентификатором пользователя user_id. “Пользователь” в этом контексте относится к учетной записи входа в систему, а не к пользователю MySQL, указанному в таблицах прав доступа. Это также можно назначить во время выполнения с помощью параметра командной строки --user.

    В Linux при установке Router с помощью официальных пакетов DEB или RPM создается локальный системный пользователь и группа с именем "mysqlrouter" на хосте, и MySQL Router запускается от имени этого пользователя по умолчанию. Эта учетная запись не имеет доступа к оболочке, а ее домашний каталог указывает на каталог, в котором хранится файл конфигурации по умолчанию.

    Цель этого параметра — запуск MySQL Router от имени пользователя с ограниченными системными правами. Если пользователь не существует в системе или если предпринята попытка запустить Router от имени root, выводится сообщение об ошибке, и Router завершает работу.

    MySQL Router может быть загружен и выполнен под любым пользователем операционной системы и не требует специальных привилегий, кроме прав чтения и записи в собственные файлы. К файлам, к которым он обращается, относятся плагины (чтение/выполнение), файл конфигурации, журналы, файлы сокетов домена UNIX (если включены) и многое другое.

    По умолчанию файлы конфигурации и журналов записываются в общесистемное расположение, такое как /etc и /var/log. В качестве альтернативы, Router может быть загружен в собственный автономный каталог с помощью параметра --directory. Например:

    $> sudo mysqlrouter --bootstrap localhost:3310 --directory /a/path/myrouter --user snoopy
    

    В этом примере Router создает /a/path/myrouter и добавляет сюда все сгенерированные файлы и каталоги, и к ним имеет доступ только на запись системный пользователь snoopy. Кроме того, user определяется в сгенерированном конфигурационном файле /a/path/myrouter/mysqlrouter.conf:

    [DEFAULT]
    user=snoopy
    
    Примечание

    Это отличается от определения user, определенного в разделе [metadata_cache], которое является пользователем MySQL.

  • ssl_ca

    Type String

    Путь к файлу SSL CA для проверки сертификата сервера при подключении к серверам метаданных.

    Может быть опционально установлен с помощью параметра загрузки --ssl-ca.

  • ssl_capath

    Type String

    Путь к каталогу, содержащему файлы SSL CA для проверки сертификата сервера при подключении к серверам метаданных.

    Может быть опционально установлен с помощью параметра загрузки --ssl-capath.

  • ssl_crl

    Type String

    Путь к файлу SSL CRL, который используется при подключении к серверам метаданных и проверке их сертификата SSL.

    Может быть опционально установлен с помощью параметра загрузки --ssl-crl.

  • ssl_crlpath

    Type String

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

    Может быть опционально установлен с помощью параметра загрузки --ssl-crlpath.

  • tls_version

    Type String

    Список версий TLS, разделенный запятыми, которые необходимо запросить, например, 'TLSv1.2,TLSv1.3', если включен SSL.

    Может быть опционально установлен с помощью параметра загрузки --tls-version.

  • bind_address

    Type String
    Default Value 127.0.0.1

    Информация, связанная с дополнительным параметром bind_address:

    • Записи маршрутизации могут быть привязаны к сетевому интерфейсу (NIC). Значение bind_address по умолчанию — 127.0.0.1. Если порт здесь не определен, необходимо установить bind_port.

    • По умолчанию --bootstrap устанавливает bind_address=0.0.0.0 для каждого маршрута в сгенерированном конфигурационном файле Router. Это значение может быть изменено с помощью --conf-bind-address.

    • Привязка к определенному IPv4 или IPv6 адресу разрешает и гарантирует, что MySQL Router не запускается и не маршрутизирует сервис на NIC, на котором ничего не разрешено выполнять.

    • Невозможно указать более одного адреса привязки для одной группы конфигурации маршрутизации. Однако использование 0.0.0.0:$port (где вы определяете $port) связывает все сетевые интерфейсы (IP) на хосте. Также могут использоваться адреса IPv6.

    Пример использования:

    bind_address = 127.0.0.1:7001
    
    Примечание

    bind_address не может быть указан в списке destinations.

  • bind_port

    Тип Целое число

    Необязательно, вы можете задать порт по умолчанию для bind_address с помощью bind_port. Если порт не настроен в bind_address, то bind_port является обязательным и используется.

    Необязательно задайте эти значения, используя параметр запуска --conf-base-port.

    Три примера ниже приводят к bind_address = 127.0.0.1:7001

    [routing:example_1]
    bind_port = 7001
    
    [routing:example_2]
    bind_port = 7001
    bind_address = 127.0.0.1
    
    [routing:example_3]
    bind_address = 127.0.0.1:7001
    
  • socket

    Платформозависимые Linux
    Тип Строка

    Сокеты включаются с помощью параметра socket, который можно указать с или без опций TCP bind_port и bind_address. Пример:

    [routing]
    socket = /tmp/mysqlrouter.sock
    destinations = a.example.com:3306,b.example.com:3307
    

    При запуске MySQL Router Router откажется от запуска, если файл сокета уже существует или в него нельзя записать.

    Допустимы относительные пути, основанные на текущей рабочей директории, где запущен Router.

    Router может одновременно прослушивать TCP сокеты и Unix-сокеты. Например, следующий пример конфигурации [routing] является допустимым и настраивает Router для прослушивания подключений как по localhost:1234, так и по /tmp/mysqlrouter.sock:

    [routing:my_redirect]
    bind_address = localhost:1234
    socket = /tmp/mysqlrouter.sock
    destinations = localhost:57121, localhost:57122, localhost:57123
    
    Примечание

    Предел длины Unix-доменного сокета зависит от платформы и не должен превышать разрешенной системой длины.

  • protocol

    Тип Строка
    Значение по умолчанию classic
    Допустимые значения

    classic

    x

    Используется плагином маршрутизации при подключении к целевому серверу MySQL и может быть установлено на "classic" (по умолчанию) или "x" (протокол X).

    Пример использования:

    [routing:basic_failover]
    bind_port = 7001
    destinations = 10.20.200.1:33060, 10.20.200.2:33060
    protocol = x
    

    Параметр protocol также влияет на порт по умолчанию, используемый каждым целевым сервером. Если порт целевого сервера не настроен, то порт по умолчанию равен 3306 для "classic" (по умолчанию) или 33060 для "x" (протокол X).

  • pid_file

    Тип Строка

    Устанавливает расположение файла PID. Это можно задать тремя способами (в порядке приоритета): параметром командной строки --pid-file, задав этот pid_file параметр в файле конфигурации Router или определив переменную окружения ROUTER_PID.

    Если указан --bootstrap, то определения pid_file и ROUTER_PID игнорируются. Это отличается от параметра командной строки --pid-file, который приводит к ошибке Router.

    Если --bootstrap не указан, то следующие причины приводят к ошибке Router: файл --pid-file уже существует, pid_file или ROUTER_PID заданы, но пусты, или Router не может записать файл PID.

  • connect_timeout

    Тип Целое число
    Значение по умолчанию 5
    Минимальное значение 1
    Максимальное значение 65536

    Значение таймаута, используемое MySQL Router при подключении к целевому серверу MySQL. Значение не может быть неограниченным, а некорректное значение приводит к ошибке конфигурации. Допустимый диапазон от 1 до 65536. Это значение следует держать низким.

    Пример использования:

    [routing]
    connect_timeout = 5
    

    Может быть задано при запуске с помощью --conf-set-option=routing.connect_timeout.

  • connect_timeout

    Тип Целое число
    Значение по умолчанию 5

    Значение таймаута, используемое MySQL Router при подключении к метаданному серверу MySQL.

    Пример использования:

    [DEFAULT]
    connect_timeout = 5
    

    Может быть задано при запуске с помощью либо --connect-timeout, либо --conf-set-option=DEFAULT.connect_timeout.

  • read_timeout

    Тип Целое число
    Значение по умолчанию 30

    Значение таймаута, используемое MySQL Router при чтении с метаданного сервера MySQL. Значение по умолчанию 30 секунд.

    Пример использования:

    [DEFAULT]
    read_timeout = 30
    
  • destinations

    Тип Строка

    Предоставляет информацию об хостах для установления подключений. Принимает либо список адресов целевых серверов через запятую, либо ссылку на кэш метаданных для InnoDB кластера.

    Пример использования со списком конкретных хостов (статическая маршрутизация):

    destinations = a.example.com,b.example.com,c.example.com
    
    Примечание

    Если порт целевого сервера не указан явно, то порт по умолчанию равен 3306, если protocol равен "classic" или не задан (по умолчанию), или 33060, если protocol равен "x".

    Пример использования с кэшем метаданных InnoDB кластера:

    destinations=metadata-cache://mycluster/default?role=PRIMARY
    

    Доступные URI параметры metadata-cache:

    • role: Определяет тип экземпляров, доступных для подключения. Допустимые значения: PRIMARY, SECONDARY или PRIMARY_AND_SECONDARY.

      Параметр routing_strategy mysqlrouter.conf определяет конкретную стратегию, а по умолчанию используется стратегия маршрутизации кэша метаданных round-robin.

    • disconnect_on_promoted_to_primary: Управляет тем, закрываются ли существующие клиентские подключения к вторичному узлу, когда вторичный узел повышается до первичного. Значение по умолчанию "no", то есть существующие клиентские подключения к повышенному вторичному узлу не закрываются после повышения. Установите disconnect_on_promoted_to_primary=yes в URI для закрытия этих подключений.

    • disconnect_on_metadata_unavailable: Управляет тем, закрываются ли существующие клиентские подключения, когда группа перегружена. Значение по умолчанию "no", то есть существующие клиентские подключения не закрываются, когда группа перегружена. Установите disconnect_on_metadata_unavailable=yes в URI для закрытия этих подключений.

    Примечание

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

  • dynamic_state

    Type String

    Этот параметр отслеживает и хранит адреса активных серверов метаданных MySQL InnoDB Cluster и загружает их при перезапуске маршрутизатора. Эта функция активируется с помощью --bootstrap.

    Инициализация определяет параметр dynamic_state в файле mysqlrouter.conf в разделе [DEFAULT]. Значение представляет собой путь к JSON-файлу с именем state.json, который создается после инициализации маршрутизатора. state.json инициализируется адресами серверов метаданных InnoDB Cluster и идентификатором группы репликации (group_replication_name, возвращаемый InnoDB Cluster); дополнительная информация добавляется и обновляется во время работы маршрутизатора.

    Пример записи mysqlrouter.conf:

    [DEFAULT]
    dynamic_state=/opt/myrouter/data/state.json
    

    Пример state.json, генерируемый --bootstrap:

    {
        "metadata-cache": {
            "group-replication-id": "4b9e817a-0254-11e9-9cc0-080027bb5030",
            "cluster-metadata-servers": [
                "mysql://localhost:3310",
                "mysql://localhost:3320",
                "mysql://localhost:3330"
            ]
        },
        "version": "1.0.0"
    }
    
  • routing_strategy

    Type String
    Valid Values

    first-available

    next-available

    round-robin

    round-robin-with-fallback

    Стратегия маршрутизации определяет, как MySQL Router выбирает серверы MySQL для подключения.

    Доступные стратегии:

    Примечание

    Документация по ролям после этого раздела описывает доступные комбинации и конфликты role и routing_strategy.

    Недоступные пункты назначения помещаются в карантин и пропускаются, и проверяются на доступность каждые error_quarantine_interval секунд. Все стратегии маршрутизации, кроме next-available, используют это поведение.

    • round-robin: для балансировки нагрузки каждое новое соединение устанавливается со следующим доступным сервером в режиме round-robin.

    • round-robin-with-fallback: для балансировки нагрузки каждое новое соединение устанавливается со следующим доступным вторичным сервером в режиме round-robin. Если вторичный сервер недоступен, то серверы из основного списка используются в режиме round-robin.

    • first-available: новое соединение направляется на первый доступный сервер из списка пунктов назначения. В случае сбоя используется следующий доступный сервер. Этот цикл продолжается до тех пор, пока все серверы не станут недоступны.

    • next-available: как first-available, в том смысле, что новое соединение направляется на первый доступный сервер из списка пунктов назначения. В отличие от first-available, если сервер помечен как недоступный, он отбрасывается и больше никогда не используется в качестве пункта назначения.

      Ограничения включают:

      • После того, как все узлы выбора отброшены, нет возможности добавить серверы обратно в список.

        В отличие от других стратегий, недоступные пункты назначения не проверяются на доступность каждые error_quarantine_interval секунд.

      • После перезапуска MySQL Router все сведения о том, какие серверы были отброшены, теряются, и все серверы снова становятся доступными.

      • Кэш метаданных не поддерживает политику маршрутизации next-available, поскольку next-available работает только со статической маршрутизацией.

    Значения по умолчанию и доступные комбинации role:

    • PRIMARY: round-robin является поведением по умолчанию (если routing_strategy не задан), тогда как инициализация добавляет routing_strategy=first-available в сгенерированный файл конфигурации MySQL Router. Доступные значения стратегии — first-available и round-robin.

    • SECONDARY: round-robin является поведением по умолчанию (если routing_strategy не задан), тогда как инициализация добавляет routing_strategy=round-robin-with-fallback в сгенерированный файл конфигурации MySQL Router. Доступные значения стратегии — first-available, round-robin и round-robin-with-fallback.

    • PRIMARY_AND_SECONDARY: round-robin является поведением по умолчанию (если routing_strategy не задан). Доступные значения стратегии — first-available, round-robin.

  • max_connections

    Type Integer
    Default Value 512
    Minimum Value 1
    Maximum Value 65536

    Каждое маршрутизация может ограничивать количество маршрутов или соединений. Одним из возможных применений является предотвращение возможных атак типа «отказ в обслуживании» (DoS). Значение по умолчанию равно 512, а допустимый диапазон — от 1 до 65536.

    Это аналогично переменной системы сервера.

    [routing:mycluster_default_rw]
    max_connections = 512
    

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

    Максимальное значение зависит как от ограничений опроса системы (или linux_epoll), так и от количества доступных ядер/потоков ЦП. См. также параметры конфигурации [IO] backend и threads.

    Дополнительная установка max_connections в разделе [DEFAULT] устанавливает значение по умолчанию для каждого пункта назначения маршрутизации.

  • max_total_connections

    Type Integer
    Default Value 512
    Minimum Value 1
    Maximum Value 9223372036854775807

    Максимальное количество клиентских соединений, обрабатываемых маршрутизатором, чтобы предотвратить исчерпание дескрипторов файлов.

    Это аналогично переменной системы сервера.

    [DEFAULT]
    max_total_connections = 512
    
    Примечание

    Устаревший параметр max_connections устанавливает значение для каждого экземпляра маршрутизации, например, одно значение для чтения и другое для записи. Параметр max_total_connections устанавливает одно значение для всех экземпляров маршрутизации вместе.

    Значение по умолчанию равно 512, и оно устанавливается в разделе [DEFAULT].

  • thread_stack_size

    Type Integer
    Default Value 64
    Minimum Value 1
    Maximum Value 65535

    Размер стека, выделяемый для каждого потока. Он измеряется в килобайтах и по умолчанию равен 64.

    [DEFAULT]
    thread_stack_size=128
    
  • net_buffer_length

    Type Integer

    Устанавливает параметр сервера MySQL.

  • max_connect_errors

    Type Integer
    Default Value 100
    Minimum Value 1
    Maximum Value 4294967295

    Значение по умолчанию равно 100, а допустимый диапазон — от 1 до 2^32 (4294967295, беззнаковое целое число).

    Это аналогично переменной системы сервера.

    Это может привести к небольшому снижению производительности, если приложение выполняет частые повторные подключения, поскольку MySQL Router пытается определить наличие ошибок, связанных с соединением.

    Успешное соединение сбрасывает счетчик ошибок.

    Каждое маршрутизация имеет свой собственный список заблокированных хостов. Заблокированные клиенты получают код ошибки сервера MySQL 1129 с немного другим сообщением об ошибке: «1129: Слишком много ошибок соединения от fail.example.com». Журналы Router содержат дополнительную информацию для заблокированных клиентов, например: INFO [...] 1 ошибка аутентификации для fail.example.com (максимум 100) WARNING [...] блокировка клиентского хоста fail.example.com

    max_connect_errors = 100
    
  • client_connect_timeout

    Type Integer
    Default Value 9
    Minimum Value 2
    Maximum Value 31536000

    Это аналогично переменной серверной системы.

    Значение по умолчанию равно 9, что на единицу меньше, чем значение по умолчанию для MySQL 5.7. Допустимый диапазон значений — от 2 до 31536000.

    client_connect_timeout = 9
    
  • auth_cache_refresh_interval

    Type Numeric
    Default Value 2
    Minimum Value 0.001
    Maximum Value 3600

    Время (в секундах) между попытками обновления кэша авторизации. Значение по умолчанию — 2. Значение должно быть меньше, чем auth_cache_ttl, и больше, чем ttl, иначе маршрутизатор не запустится.

    Этот параметр применяется, если параметр backend раздела http_auth_backend установлен в metadata_cache; это функция REST API маршрутизатора.

  • auth_cache_ttl

    Type Numeric
    Default Value -1
    Minimum Value 0.001
    Maximum Value 3600

    Время (в секундах), по истечении которого кэш становится недействительным, если он не обновляется. Значение по умолчанию — -1 (бесконечно). Значение должно быть больше, чем auth_cache_refresh_interval, и ttl, иначе маршрутизатор не запустится.

    Этот параметр применяется, если параметр backend раздела http_auth_backend установлен в metadata_cache; это функция REST API маршрутизатора.

  • router_id

    Type Integer
    Maximum Value 4294967295

    Идентификатор MySQL Router.

  • server_ssl_cert

    Type String
    Default Value

    Имя файла сертификата открытого ключа SSL в формате PEM. Он используется для обеспечения аутентификации на стороне сервера во время процесса загрузки.

  • server_ssl_key

    Type String
    Default Value

    Имя файла закрытого ключа SSL в формате PEM, используемого для шифрования соединений маршрутизатора с сервером. См. также Раздел 4.4, «Конфигурация TLS» .

  • server_ssl_curves

    Type String

    По умолчанию используется защищенный список кривых SSL. Отформатируйте эту строку как список имен кривых, разделенных двоеточием.

  • server_ssl_cipher

    Type String

    По умолчанию используется защищенный список шифров SSL. Отформатируйте эту строку как список имен шифров, разделенных двоеточием.

  • server_ssl_verify

    Type String
    Default Value DISABLED
    Valid Values

    DISABLED

    VERIFY_CA

    VERIFY_IDENTITY

    Проверка сертификатов SSL, предоставляемых сервером маршрутизатору.

    • DISABLED: соединение прерывается, если сервер не предоставляет сертификат во время рукопожатия.

    • VERIFY_CA: соединение прерывается, если сертификат сервера не соответствует доверенному центру сертификации (ЦС), которому доверяет MySQL Router.

    • VERIFY_IDENTITY: соединение прерывается, если сертификат сервера не соответствует доверенному центру сертификации (ЦС), которому доверяет MySQL Router, или субъект сертификата сервера не соответствует имени хоста или IP-адресу, к которому подключился MySQL Router.

  • server_ssl_mode

    Type String
    Default Value AS_CLIENT
    Valid Values

    AS_CLIENT

    DISABLED

    PREFERRED

    REQUIRED

    Режим SSL-соединения, используемый при подключении между MySQL Router и сервером. См. также Раздел 4.4, «Конфигурация TLS» .

  • server_ssl_ca

    Command-Line Format --server-ssl-ca file_path
    Type String
    Default Value

    Имя файла сертификата центра сертификации (ЦС) в формате PEM. Файл содержит список доверенных центров сертификации SSL. См. также Раздел 4.4, «Конфигурация TLS» .

  • server_ssl_capath

    Command-Line Format --server-ssl-capath dir_path
    Type String
    Default Value

    Имя каталога, содержащего доверенные файлы сертификатов центров сертификации SSL (ЦС) в формате PEM. См. также Раздел 4.4, «Конфигурация TLS» .

  • client_ssl_cert

    Command-Line Format --client-ssl-cert file_path
    Type String
    Default Value

    Имя файла сертификата открытого ключа SSL в формате PEM. Он используется для обеспечения аутентификации на стороне клиента во время процесса загрузки.

    Как и -client_ssl_key, этот параметр используется только во время загрузки, которая использует учетную запись root. Это полезно, когда учетная запись root была создана с REQUIRE X509, и поэтому для входа в систему как root требуется, чтобы клиент аутентифицировал себя.

  • server_ssl_crlpath

    Command-Line Format --server-ssl-crlpath dir_path
    Type String
    Default Value

    Путь к каталогу, содержащему файлы списка отзыва сертификатов в формате PEM. См. также Раздел 4.4, «Конфигурация TLS» .

  • server_ssl_crl

    Формат командной строки --server-ssl-crl file_path
    Тип Строка
    Значение по умолчанию

    Путь к файлу, содержащему списки отзыва сертификатов в формате PEM. См. также Раздел 4.4, «TLS-настройка» .

  • client_ssl_key

    Формат командной строки --client-ssl-key file_path
    Тип Строка
    Значение по умолчанию

    Путь к файлу с закрытым ключом SSL в формате PEM, используемому для шифрования подключений «клиент-маршрутизатор». См. также Раздел 4.4, «TLS-настройка» .

  • client_ssl_dh_params

    Тип Строка

    Имя файла параметров DH. Если указано и не пусто, то параметры DH из этого файла будут использоваться вместо внутренних параметров DH по умолчанию. Файл параметров DH должен быть в формате PEM.

  • client_ssl_curves

    Тип Строка

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

  • client_ssl_cipher

    Тип Строка

    Допустимые шифры между клиентом и MySQL Router, по умолчанию используется безопасный список шифров SSL. Строка форматируется как список имён шифров, разделённых двоеточием.

  • client_ssl_mode

    Тип Строка
    Значение по умолчанию PREFERRED
    Допустимые значения

    PREFERRED

    DISABLED

    PASSTHROUGH

    REQUIRED

    Управляет обязательностью шифрования подключений от клиента к MySQL Router. См. также Раздел 4.4, «TLS-настройка» .

  • ssl_mode

    Тип Строка
    Значение по умолчанию PREFERRED
    Допустимые значения

    PREFERRED

    DISABLED

    REQUIRED

    VERIFY_CA

    VERIFY_IDENTITY

    Режим SSL для подключения к серверу метаданных MySQL. По умолчанию равен PREFERRED, если не задан.

    При значении PREFERRED (по умолчанию) при запуске будет предупреждение, если SSL не используется и подключение к серверу метаданных не зашифровано.

    Доступные значения: DISABLED, PREFERRED, REQUIRED, VERIFY_CA, и VERIFY_IDENTITY. Как и в клиенте mysql, регистр значения не важен.

    Также есть параметр для запуска; см. --ssl-mode.

  • user (MySQL)

    Тип Строка

    Сгенерированный пользователь MySQL с привилегиями для доступа к схеме метаданных сервера MySQL. Пароль этого пользователя сгенерирован автоматически и хранится в зашифрованном ключевом хранилище. По умолчанию ключ шифрования для этого хранилища хранится в защищённом файле главного ключа, который определён в конфигурационном файле. Чаще всего, этот пользователь и соответствующий пароль генерируются автоматически во время запуска. Связанные параметры командной строки: --force-password-validation и --password-retries. По умолчанию сгенерированный пароль проходит проверку на сложность STRONG.

    Пароль полностью управляется Router и никогда не раскрывается, а хранится в локальной системе хранилищ ключей с использованием учётной записи операционной системы, под которой работает MySQL Router. Затем он может использоваться Router для подключения к InnoDB Cluster и получения текущей информации о топологии. Сессии между Router и сервером метаданных шифруются с помощью SSL по умолчанию.

    Местоположение сгенерированных файлов хранилища ключей зависит от конфигурации запуска. При самодостаточных установках (когда используется --directory), оно хранится в run/ в каталоге самодостаточной установки. Для системных установок оно хранится в системном каталоге состояния во время работы, и этот путь специфичен для платформы. Дополнительную информацию см. в master_key_path и keyring_path

    Этому пользователю назначены следующие привилегии:

    Privileges needed by the Router account:
    
    	On Metadata Server:
    
    		SELECT ON mysql_innodb_cluster_metadata.*
    
    	On Target Replica Sets:
    
    		SELECT ON performance_schema.replication_group_members
    		SELECT ON performance_schema.replication_group_member_stats
    

    Сгенерированное имя пользователя имеет следующий шаблон: mysql_router_{router_id}_[0-9a-z]{7}, где {router_id} — числовой идентификатор маршрутизатора, а [0-9a-z]{7} — 7 случайных строчных буквенно-цифровых символов. Идентификатор маршрутизатора повторно используется, если он уже присутствует в mysqlrouter.conf, и его значение не может превышать 4294967295 (2^32-1).

    Примечание

    Этот пользователь отличается от определения user, определённого в разделе [DEFAULT], который является системным пользователем.

    Эта структура изменилась в MySQL Router 8.4.1, ранее она была mysql_router_[0-9]{1,6}_[0-9a-z]{12}.

  • metadata_cluster

    Тип Строка

    Имя InnoDB Cluster.

    Примечание

    SQL-запрос для перечисления имён MySQL InnoDB кластеров: SELECT * FROM mysql_innodb_cluster_metadata.clusters;

  • use_gr_notifications

    Тип Integer
    Значение по умолчанию 0
    Допустимые значения

    0

    1

    Включает уведомления о репликации групп. Когда эта функция включена, маршрутизатор асинхронно уведомляется о большинстве изменений кластера. Её можно включить вручную в mysqlrouter.conf или включить там же с помощью параметра командной строки --conf-use-gr-notifications во время загрузки.

    Когда маршрутизатор получает любые из следующих уведомлений от Group Replication, он обновляет метаданные кластера:

    • group_replication/membership/quorum_loss

    • group_replication/membership/view

    • group_replication/status/role_change

    • group_replication/status/state_change

    Примечание

    Функция уведомлений Group Replication требует подключения X Protocol от маршрутизатора к каждому экземпляру, на котором должен работать плагин X. Если подключение X Protocol недоступно, обновление метаданных выполняется через интервалы ttl, как если бы функция уведомлений не была включена.

    Хотя уведомления Group Replication полагаются на подключение X Protocol, полученные уведомления запускают обновление метаданных, которое использует классическое подключение протокола MySQL к экземпляру.

    Когда включена, функция уведомления Group Replication позволяет использовать более высокое значение ttl, поскольку обновления метаданных, выполняемые через интервалы ttl, становятся дополнительной защитой, а не основным средством поддержания актуальности информации о состоянии кластера. Когда отключена, рекомендуется использовать низкое значение ttl (например, 0,5 с, по умолчанию), чтобы избежать накладных расходов на повторное подключение к экземплярам и частый запрос изменений метаданных.

  • ttl

    Тип Numeric
    Значение по умолчанию 0.5
    Минимальное значение 0
    Максимальное значение 3600

    Время жизни (в секундах) информации в кэше метаданных.

    Принимает целое или число с плавающей точкой. Шаг равен миллисекундам, где 0,001 эквивалентно одной миллисекунде. Точность усекается до поддерживаемого диапазона; например, TTL=0.0119 обрабатывается как 11 миллисекунд. Значение 0 означает, что модуль кэша метаданных постоянно запрашивает метаданные в цикле.

    Значение должно быть меньше, чем auth_cache_refresh_interval и auth_cache_ttl, иначе маршрутизатор не запустится.

    Единственным поддерживаемым десятичным разделителем является «.» (точка) независимо от локали, и поддерживается экспоненциальная запись, например TTL=1.6E-2.

  • destination

    Тип String
    Значение по умолчанию (Windows) CON
    Значение по умолчанию (другие) /dev/stderr
    Допустимые значения (Windows)

    CON

    NUL

    Допустимые значения (другие)

    /dev/null

    /dev/stderr

    /dev/stdout

    Направляет вывод консольного журнала в это устройство назначения; устанавливается в разделе [consolelog]. По умолчанию используется /dev/stderr, а пустое значение использует значение по умолчанию.

    Доступные значения: /dev/stdout, /dev/stderr и /dev/null; или CON и NUL в Windows.

    [DEFAULT]
    logging_folder=
    
    [consolelog]
    destination=/dev/null
    
  • filename

    Тип String

    Перенаправляет вывод журнала в определённый файл с именем filename, расположенный в каталоге logging_folder. Он должен быть определён как имя файла, а не путь к файлу, и работает как с разделами [logger], так и с [filelog].

    Использование filename с [logger] для определения значения по умолчанию для раздела [filelog], а также изменяет файл журнала маршрутизатора с mysqlrouter.log на это новое значение.

    [DEFAULT]
    logging_folder=/path/to/logs/
    
    [logger]
    filename = router_error.log
    

    Маршрутизатор не сообщает об ошибке, если filename установлен в [logger], но не используется ни один регистратор на основе файла.

    Использование filename с [filelog]:

    [DEFAULT]
    logging_folder=/path/to/logs/
    
    [filelog:a]
    filename = a_router_error.log
    
    [filelog:b]
    filename = b_router_error.log
    

    Если filename пуст или не установлен в [filelog], используется определение filename в [logger]; а если filename не установлен и в [logger], используется файл журнала по умолчанию (mysqlrouter.log).

    Соответственно, перенаправление консольного вывода в /dev/null:

    [DEFAULT]
    logging_folder=
    
    [consolelog]
    destination=/dev/null
    
  • level

    Тип String
    Значение по умолчанию INFO
    Допустимые значения

    DEBUG

    NOTE

    INFO

    WARNING

    ERROR

    SYSTEM

    FATAL

    Используйте плагин logger для регистрации уведомлений, ошибок и информации для отладки. Доступные уровни журнала: DEBUG, NOTE, INFO (по умолчанию), WARNING, ERROR, SYSTEM и FATAL. Эти значения нечувствительны к регистру.

    Уровень INFO отображает все информационные сообщения, предупреждения и сообщения об ошибках. Уровень DEBUG отображает дополнительную диагностическую информацию из кода маршрутизатора, включая успешные маршруты. SYSTEM включает сообщения, такие как сообщения о запуске.

    [logger]
    level = DEBUG
    

    Поведение вывода зависит от параметра logging_folder. Установка logging_folder в папку сохраняет файл журнала с именем mysqlrouter.log в этой папке. Установка logging_folder в пустое значение или его отсутствие выводит журнал на консоль. Он устанавливается в разделе [DEFAULT].

    Загрузка принимает конфигурационный файл с помощью --config и использует определение уровня журнала.

  • timestamp_precision

    Тип String

    Точность метки времени журнала; доступные определения с примерами значений:

    • second, sec, or s: 2019-05-10 12:10:25

    • millisecond, msec, or ms: 2019-05-10 12:10:25.428

    • microsecond, usec, or us: 2019-05-10 12:10:25.428754

    • nanosecond, nsec, ns: 2019-05-10 12:10:25.428754000

  • port

    Тип Integer
    Значение по умолчанию 8081

    TCP-порт, прослушивающий HTTP-запросы; по умолчанию 8081.

  • bind_address

    Type String
    Default Value 0.0.0.0

    IP-адрес, привязанный к HTTP port; по умолчанию 0.0.0.0.

  • static_folder

    Type String

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

  • require_realm

    Type String

    Имя экземпляра [http_auth_realm].

  • ssl

    Type Integer
    Default Value 1
    Valid Values

    1

    0

    Значение 1 включает SSL, а 0 отключает его. Требуются клиенты TLS, поддерживающие TLSv1.2 или более поздние версии. Это определяется в разделе [http_server].

  • ssl_cert

    Type String

    Имя файла сертификата и его цепочки сертификации в формате PEM; требуется, если ssl=1. Это определяется в разделе [http_server].

  • ssl_key

    Type String

    Имя файла ключа в формате PEM; требуется, если ssl=1. Это определяется в разделе [http_server].

  • ssl_cipher

    Type String

    Cipher-spec (см. список «ciphers» в openssl). По умолчанию используется разделенный запятыми список всех утвержденных шифров. Неизвестные шифры игнорируются без сообщений об ошибках. Возникает ошибка, если список шифров пуст и ssl=1. Это определяется в разделе [http_server].

  • ssl_dh_param

    Type String

    Прочитать параметр DH из этого файла в формате PEM. По умолчанию используется dh-param из RFC 5114, если ssl=1. Это определяется в разделе [http_server].

  • interval

    Type Integer
    Default Value 60

    Определяет частоту (в секундах), с которой MySQL Router отправляет сообщение keepalive ping. Общее количество пингов определяется параметром конфигурации runs.

    [keepalive]
    interval = 42
    runs = 0
    
    Примечание

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

  • runs

    Type Integer
    Default Value 0

    Ограничивает количество интервалов, в течение которых MySQL Router отправляет сообщение keepalive ping. Установка значения 0 (по умолчанию) означает, что он выполняется до тех пор, пока MySQL Router не будет выключен. Частота определяется параметром interval.

    [keepalive]
    interval = 42
    runs = 0
    
    Примечание

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

  • backend

    Type String
    Default Value (Windows) poll
    Default Value (Other) linux_epoll
    Valid Values (Windows) poll
    Valid Values (Other)

    linux_epoll

    poll

    Бэкэнд ввода-вывода, который обрабатывает асинхронные операции. Универсальный бэкэнд опроса доступен на всех платформах, в то время как каждая платформа может предоставлять альтернативные бэкэнды.

    Доступные варианты: poll (все платформы) и linux_epoll (Linux). По умолчанию используется linux_epoll в Linux.

    [io]
    backend=linux_epoll
    threads=32
    
    Примечание

    Это один из нескольких параметров backend, каждый в разных [section] с разными целями:

    • [io] backend для асинхронных операций.

    • [http_auth_realm] backend определяет пользовательское имя для бэкэнда, связанного с определенной областью

    • [http_auth_backend] backend тип бэкэнда аутентификации

  • threads

    Type Integer
    Default Value 0
    Minimum Value 0
    Maximum Value 1024

    Количество потоков ввода-вывода, которые обрабатывают подключения.

    По умолчанию 0 (использует все доступные ядра/потоки ЦП), но также принимает число от 1 до 1024. Во время выполнения система может ограничить верхний предел выше этого значения.

    [io]
    backend=linux_epoll
    threads=32
    
  • connection_sharing_delay

    Type Integer
    Default Value 1
    Minimum Value 0
    Maximum Value 2^63-1

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

    См. Раздел 3.4, «Общий доступ к соединениям и повторное использование».

  • connection_sharing

    Type Integer
    Default Value 0
    Minimum Value 0
    Maximum Value 1

    Включать ли общий доступ к соединениям.

    См. Раздел 3.4, «Общий доступ к соединениям и повторное использование».

  • idle_timeout

    Type Integer
    Default Value 5
    Minimum Value 1
    Maximum Value 4294967296

    Количество секунд для хранения бездействующего соединения в пуле соединений перед его закрытием. Это значение устанавливается в разделе [connection_pool] и влияет на все маршруты в пуле соединений. По умолчанию равно 5, принимает значение от 1 до 4294967296.

  • max_idle_server_connections

    Type Integer
    Default Value 0
    Minimum Value 0
    Maximum Value 4294967296

    Соединения, которые необходимо поддерживать открытыми в пуле соединений после отключения клиента; и устанавливается в разделе [connection_pool]. Значение по умолчанию равно 0, что отключает пул соединений.

  • client_ssl_session_cache_mode

    Type Boolean
    Default Value 1

    Включает или отключает кэш для сеансов TLS клиент-роутер.

    Note

    Включен по умолчанию. Если этот параметр не установлен, кэш включен. Для отключения кэша необходимо явно его определить.

  • client_ssl_session_cache_size

    Type Integer
    Default Value 1024
    Minimum Value 1
    Maximum Value 2^31-1

    Определяет максимальное количество кэшированных сеансов. Если добавление нового сеанса в кэш приводит к тому, что количество кэшированных сеансов превышает установленный максимум, самый старый кэшированный сеанс удаляется, чтобы разрешить кэширование самого нового.

  • client_ssl_session_cache_timeout

    Type Integer
    Default Value 300
    Minimum Value 1
    Maximum Value 84600

    Определяет максимальное время, в секундах, в течение которого сеанс остается в кэше. Если время ожидания истекло, и этот сезон не используется повторно, сеанс удаляется из кэша, и соединение закрывается.

  • server_ssl_session_cache_mode

    Type Boolean
    Default Value 1

    Включает или отключает кэш для сеансов TLS роутер-сервер.

    Note

    Включен по умолчанию. Если этот параметр не установлен, кэш включен. Для отключения кэша необходимо явно его определить.

  • server_ssl_session_cache_size

    Type Integer
    Default Value 1024
    Minimum Value 1
    Maximum Value 2^31-1

    Определяет максимальное количество кэшированных сеансов. Если добавление нового сеанса в кэш приводит к тому, что количество кэшированных сеансов превышает установленный максимум, самый старый кэшированный сеанс удаляется, чтобы разрешить кэширование самого нового.

  • server_ssl_session_cache_timeout

    Type Integer
    Default Value 300
    Minimum Value 1
    Maximum Value 84600

    Время в секундах до удаления сеансов TLS из кэша сеансов TLS сервера.

  • connect_retry_timeout

    Type Integer
    Default Value 7
    Minimum Value 1
    Maximum Value 3600

    Если классическое соединение завершается неудачей с преходящей ошибкой, такой как max-connections reached, MySQL Router ожидает определенное количество секунд, прежде чем повторить попытку соединения. Попытка соединения повторяется в соответствии с определенной стратегией маршрутизации.

    Если connect_retry_timeout не определено, по умолчанию используется 7 секунд. Если значение connect_retry_timeout определено за пределами допустимого диапазона значений, MySQL Router не запустится.

    Note

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

    Если соединение завершается неудачей с преходящей ошибкой после успешной аутентификации, повторная попытка соединения возможна только в том случае, если соединение клиент-роутер зашифровано с помощью TLS или имеет открытый ключ.

    Таблица 4.18 Режимы SSL и повторная попытка

    Таблица 4.18 Режимы SSL и повторная попытка

    client_ssl_mode

    server_ssl_mode

    Supports Retry

    PASSTHROUGH

    Any

    No

    DISABLED

    Any

    No

    PREFERRED

    AS_CLIENT

    No

    PREFERRED

    Any other mode

    Yes

    REQUIRED

    Any

    Yes


  • backend

    Type String

    Имя раздела [http_auth_backend].

    Note

    Это один из нескольких параметров backend, каждый в отдельном разделе [section] с различным назначением:

    • [io] backend для асинхронных операций.

    • [http_auth_realm] backend определяет пользовательское имя для бэкэнда, связанного с определенной областью

    • [http_auth_backend] backend тип бэкэнда аутентификации

  • method

    Type String
    Default Value basic

    Метод HTTP-аутентификации; по умолчанию basic.

  • name

    Type String

    Имя области, представленное пользователю для аутентификации.

  • require

    Тип Строка
    Значение по умолчанию valid-user

    Требует, чтобы пользователь авторизовался через механизм аутентификации; по умолчанию значение valid-user, что включает эту проверку.

  • backend

    Тип Строка
    Значение по умолчанию file

    Название реализации бэкенда; допустимые значения — file (по умолчанию) или metadata_cache.

    [http_auth_backend:name]
    backend=metadata_cache
    
    [metadata_cache]
    auth_cache_refresh_interval=2
    auth_cache_ttl=-1
    
    Примечание

    Это один из нескольких вариантов backend, каждый в отдельном [section] с различным назначением:

    • [io] backend для асинхронных операций.

    • [http_auth_realm] backend определяет пользовательское имя для бэкенда, связанного с определённым областью.

    • [http_auth_backend] backend тип бэкенда аутентификации.

  • filename

    Тип Строка

    Имя файла хранения бэкенда, относительно каталога data_folder.

  • cluster_type

    Тип Строка
    Допустимые значения

    gr

    rs

    Тип объекта AdminAPI, к которому был инициализирован маршрутизатор: InnoDB ReplicaSet (rs) или InnoDB Cluster (gr). Используйте 'gr' для кластеров.

    Инициализация оценивает целевой экземпляр и устанавливает этот параметр соответствующим образом в сгенерированном конфигурационном файле.

  • error_quarantine_interval

    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 1
    Максимальное значение 65535

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

    Если задано недопустимое значение, MySQL Router не запускается, и об этом регистрируется ошибка.

    Например:

            [destination_status]
             error_quarantine_threshold=5
             error_quarantine_interval=20
          
    Примечание

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

  • error_quarantine_threshold

    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 1
    Максимальное значение 3600

    Определяет порог последовательных неудачных попыток подключения к целевому серверу маршрутизации, прежде чем MySQL Router поместит этот сервер в карантин и прекратит его использование, пока он не будет освобождён механизмом карантина. Например, если установлено значение 5, целевой сервер помещается в карантин после 5 неудачных попыток подключения.

    Если задано недопустимое значение, MySQL Router не запускается, и об этом регистрируется ошибка.

    Например:

            [destination_status]
             error_quarantine_threshold=5
             error_quarantine_interval=20
          
    Примечание

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

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-router-8.4-en/mysql-router-conf-options.html

Spec-Zone.ru

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