Spec-Zone.ru › MySQL Router 9.2

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 Время, в течение которого кэш считается недействительным, если не обновлён Числовое
close_connection_after_refresh Следует ли закрывать подключение к серверу MySQL в кэше метаданных после обновления метаданных Целое число
cluster_type Объект маршрутизатора, по которому происходила инициализация Строка
metadata_cluster Имя кластера InnoDB Строка
router_id Идентификатор маршрутизатора Целое число
ssl_ca Файл сертификата SSL CA для проверки сертификата сервера Строка
ssl_capath Директория, содержащая файлы SSL CA для проверки сертификата сервера Строка
ssl_crl Файл SSL CRL для проверки сертификата сервера Строка
ssl_crlpath Директория, содержащая файлы SSL CRL для проверки сертификата сервера Строка
ssl_mode Режим SSL-соединения для подключения к серверу метаданных, по умолчанию PREFERRED, если не указано Строка
tls_version Список TLS-версий через запятую для запроса, если SSL включён Строка
ttl Время жизни (TTL) в секундах Целое число
use_gr_notifications Поведение уведомлений Group Replication Целое число
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 IO бэкенд Строка
threads Количество потоков IO Целое число

Таблица 4.17 [keepalive]

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

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

  • access_mode

    Type String
    Default Value
    Valid Values auto

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

  • wait_for_my_writes

    Type Integer
    Default Value 1
    Minimum Value 0
    Maximum Value 1

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

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

  • wait_for_my_writes_timeout

    Type Integer
    Default Value 1
    Minimum Value 0
    Maximum Value 4294967295

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

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

  • router_require_enforce

    Type Boolean
    Default Value 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

    Type String
    Default Value

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

    Например:

    [DEFAULT]
    event_source_name = MySQLRouterService
    
  • logging_folder

    Type String
    Default Value $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

    Type String
    Default Value (Windows)
    Default Value (Other) /usr/local/lib/mysqlrouter

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

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

  • runtime_folder

    Type String
    Default Value (Windows)
    Default Value (Other) /run/mysqlrouter

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

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

  • master-key-writer

    Command-Line Format --master-key-writer file_path
    Type String

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

  • master-key-reader

    Command-Line Format --master-key-reader file_path
    Type String

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

  • config_folder

    Type String
    Default Value (Windows)
    Default Value (Other) /usr/local/etc/mysqlrouter

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

    Примечание

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

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

  • sinks

    Type String
    Valid Values (Windows)

    consolelog

    filelog

    eventlog

    Valid Values (Other)

    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. “User” в данном контексте относится к учетной записи входа в систему, а не к пользователю 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 не запускается и не маршрутизирует службу на сетевом интерфейсе, на котором ничего не разрешено выполнять.

    • Невозможно указать более одного адреса привязки для каждой группы конфигурации маршрутизации. Однако, использование 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 кластера. Адреса пунктов назначения могут быть комбинацией вида hostname[:port], ip-address[:port] или local: URI для Unix-сокеттов.

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

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

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

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

    destinations=local:/tmp/mysql.sock
    

    Специфика поддержки Unix-сокеттов:

    • Принимаемый формат: local:absolute-path или local://absolute-path, где absolute-path должно начинаться с "/", что означает формат local: после одной или трех слешей.

    • Принимает ноль или более пунктов назначения Unix-доменных сокетов (URI local:).

    • В Windows MySQL Router не может быть запущен, если в качестве пункта назначения задан Unix-сокет (URI local:).

    • MySQL Router не может быть запущен, если одновременно присутствуют URI metadata-cache: и local:.

    • Так как запятая используется в качестве разделителя пунктов назначения, запятая в URI local: должна быть закодирована в URI (%2C).

    • Если параметр server_ssl_mode установлен в значение PREFERRED, а протокол – classic, то соединения через Unix-доменные сокеты не будут зашифрованы.

    • Поддержка Unix-сокеттов была добавлена в MySQL Router 9.2.0.

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

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

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

    • 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

    Тип Строка

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

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

    Пример записи 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

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

    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-with-fallback: для балансировки нагрузки каждое новое соединение устанавливается с очередным доступным вторичным сервером в циклическом порядке. Если вторичный сервер недоступен, используются серверы из списка первичных серверов в циклическом порядке.

    • 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

    Тип Целое число
    Значение по умолчанию 512
    Минимальное значение 1
    Максимальное значение 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

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

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

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

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

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

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

  • thread_stack_size

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

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

    [DEFAULT]
    thread_stack_size=128
    
  • net_buffer_length

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

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

  • max_connect_errors

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

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

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

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

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

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

    max_connect_errors = 100
    
  • client_connect_timeout

    Тип Целое число
    Значение по умолчанию 9
    Минимальное значение 2
    Максимальное значение 31536000

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

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

    client_connect_timeout = 9
    
  • auth_cache_refresh_interval

    Тип Числовое
    Значение по умолчанию 2
    Минимальное значение 0.001
    Максимальное значение 3600

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

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

  • auth_cache_ttl

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

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

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

  • close_connection_after_refresh

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

    Определяет, следует ли закрывать подключение к MySQL-серверу metadata_cache после обновления метаданных. По умолчанию 0.

    Если close_connection_after_refresh=0, metadata_cache сохраняет подключение открытым после обновления метаданных, если известно, что следующее обновление происходит к тому же серверу и обновление прошло успешно.

    Если close_connection_after_refresh=0 и metadata_cache знает, что следующее подключение будет к другому серверу или обновление завершилось ошибкой, то подключение закрывается после обновления. Максимально одно подключение остается открытым, даже если требуется подключение к нескольким серверам, как в случае с набором кластеров.

    Если close_connection_after_refresh=1, подключение metadata_cache закрывается после обновления метаданных. Связанный параметр ttl управляет частотой проверки кэша метаданных.

    [metadata_cache]
    close_connection_after_refresh=0
    
    Примечание

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

  • router_id

    Тип Целое число
    Максимальное значение 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

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

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

  • client_ssl_key

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

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

  • client_ssl_dh_params

    Type String

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

  • client_ssl_curves

    Type String

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

  • client_ssl_cipher

    Type String

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

  • client_ssl_mode

    Type String
    Default Value PREFERRED
    Valid Values

    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, это значение нечувствительно к регистру.

    Существует также параметр runtime для запуска; см. --ssl-mode.

  • user (MySQL)

    Тип Строка

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

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

    Место хранения сгенерированных файлов ключевого хранилища зависит от того, как настроен запуск. Для автономных установок (когда используется --directory) он хранится в run/ в каталоге автономной установки. Для системных установок он хранится в системном каталоге состояния runtime, и этот путь специфичен для платформы. Дополнительную информацию можно найти в 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], который является системным пользователем.

  • metadata_cluster

    Тип Строка

    Название InnoDB Cluster.

    Примечание

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

  • use_gr_notifications

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

    0

    1

    Включает уведомления Group Replication. При включении Router асинхронно получает уведомления о большинстве изменений кластера. Он может быть включен вручную в mysqlrouter.conf или включен там с помощью параметра командной строки --conf-use-gr-notifications во время запуска.

    При получении Router любого из следующих уведомлений от 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 от Router к каждому экземпляру, на котором должен быть запущен X Plugin. Если подключение X Protocol недоступно, обновление метаданных выполняется с интервалами ttl, как если бы функция уведомлений не была включена.

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

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

  • ttl

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

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

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

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

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

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

  • destination

    Тип Строка
    Значение по умолчанию (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

    Type 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]; и используется файл журнала по умолчанию (mysqlrouter.log), если filename не установлен ни в разделе [logger].

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

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

    Type String
    Default Value INFO
    Valid Values

    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

    Type 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

    Type Integer
    Default Value 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

    Спецификация шифра (см. список «шифров» 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 отправляет сообщение ping keepalive. Общее количество ping-запросов определяется параметром конфигурации runs.

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

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

  • runs

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

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

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

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

  • backend

    Тип String
    Значение по умолчанию (Windows) poll
    Значение по умолчанию (Другие) linux_epoll
    Допустимые значения (Windows) poll
    Допустимые значения (Другие)

    linux_epoll

    poll

    Бэкэнд IO, который обрабатывает асинхронные операции. Универсальный бэкэнд 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

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

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

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

    [io]
    backend=linux_epoll
    threads=32
    
  • connection_sharing_delay

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

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

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

  • connection_sharing

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

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

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

  • idle_timeout

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

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

  • max_idle_server_connections

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

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

  • client_ssl_session_cache_mode

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

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

    Примечание

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

  • client_ssl_session_cache_size

    Тип Integer
    Значение по умолчанию 1024
    Минимальное значение 1
    Максимальное значение 2^31-1

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

  • client_ssl_session_cache_timeout

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

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

  • server_ssl_session_cache_mode

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

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

    Примечание

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

  • server_ssl_session_cache_size

    Тип Integer
    Значение по умолчанию 1024
    Минимальное значение 1
    Максимальное значение 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 не запустится.

    Примечание

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

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

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

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

    client_ssl_mode

    server_ssl_mode

    Поддерживает повторные попытки

    PASSTHROUGH

    Any

    No

    DISABLED

    Any

    No

    PREFERRED

    AS_CLIENT

    No

    PREFERRED

    Any other mode

    Yes

    REQUIRED

    Any

    Yes


  • backend

    Type String

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

    Примечание

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

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

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

    • [http_auth_backend] backend тип серверной части аутентификации

  • method

    Type String
    Default Value basic

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

  • name

    Type String

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

  • require

    Type String
    Default Value valid-user

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

  • backend

    Type String
    Default Value 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

    Type String

    Имя файла хранилища серверной части, указывается относительно каталога data_folder.

  • cluster_type

    Type String
    Valid Values

    gr

    rs

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

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

  • error_quarantine_interval

    Type Integer
    Default Value 1
    Minimum Value 1
    Maximum Value 65535

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

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

    Например:

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

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

  • error_quarantine_threshold

    Type Integer
    Default Value 1
    Minimum Value 1
    Maximum Value 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-9.2-en/mysql-router-conf-options.html

Spec-Zone.ru

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