4.3.3 Параметры файла конфигурации
При запуске MySQL Router считывает список файлов конфигурации, которые вместе составляют конфигурацию маршрутизатора. Требуется как минимум один файл конфигурации.
MySQL Router считывает параметры из файлов конфигурации, которые тесно напоминают традиционный формат INI-файла, с разделами и параметрами. Эти параметры определяют настройки, устанавливаемые при запуске MySQL Router. Для получения информации о синтаксисе файла см. Раздел 4.1, «Синтаксис файла конфигурации».
Параметры определены в разделах, которые определяют значение параметра. Например, user в разделе [DEFAULT] относится к системному пользователю, под которым работает маршрутизатор, а user в разделе [metadata_cache] относится к пользователю MySQL, который получает доступ к метаданным.
Следующие таблицы разделены по разделам и обобщают параметры MySQL Router, определенные в файле конфигурации MySQL Router. Подробная информация о каждом из этих параметров, такая как описания и разрешенные значения, приведена ниже этих таблиц.
Общие параметры
Таблица 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]
| Имя параметра | Описание | Тип |
|---|---|---|
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]
| Имя параметра | Описание | Тип |
|---|---|---|
error_quarantine_interval | Определяет интервал в секундах между проверками подключений к изолированным целевым серверам. Если соединение возможно, целевой сервер удаляется из изоляции и становится доступным для подключений. | Целое число |
error_quarantine_threshold | Определяет порог последовательных неудачных попыток подключения к целевому серверу маршрутизации, после которого MySQL Router помещает целевой сервер в изоляцию и перестаёт использовать его, пока он не будет освобождён механизмом изоляции. Например, при значении 5, целевой сервер помещается в изоляцию после 5 последовательных неудачных попыток подключения к нему. | Целое число |
Таблица 4.10 [connection_pool]
| Имя параметра | Описание | Тип |
|---|---|---|
idle_timeout | Секунды поддержания простаивающего соединения в пуле перед его закрытием | Целое число |
max_idle_server_connections | Соединения, которые остаются открытыми после отключения клиента | Целое число |
Параметры кэша метаданных
Таблица 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]
| Имя параметра | Описание | Тип |
|---|---|---|
destination | Имя устройства для ведения журнала; необязательно используется с [consolelog] | Строка |
filename | Имя файла журнала; необязательно используется с [logger] и [filelog] | Строка |
level | Уровень ведения журнала | Строка |
timestamp_precision | Точность временной метки логгера | Строка |
Параметры HTTP-сервера
Таблица 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.15 [http_auth_backend]
Таблица 4.16 [io]
Таблица 4.17 [keepalive]
Описание параметров конфигурационного файла MySQL Router
-
Type String Default Value Valid Values autoОпределяет, как MySQL Router обрабатывает запросы только для чтения и чтения-записи. Если включено, запросы только для чтения направляются на серверы только для чтения, а запросы чтения-записи — на серверы чтения-записи. См. Раздел 3.5, «Разделение чтения/записи».
-
Type Integer Default Value 1Minimum Value 0Maximum Value 1Запросы только для чтения ожидают завершения последней записи транзакции.
-
Type Integer Default Value 1Minimum Value 0Maximum Value 4294967295Максимальное время в секундах ожидания применения записанной транзакции целевым объектом read_only перед переключением на целевой объект read_write.
-
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 и субъект сертификата от клиента.
-
Type String Default Value Только для платформ Microsoft Windows. Определяет имя службы, используемое MySQL Router при запуске в качестве службы в Microsoft Windows. Это позволяет отличать службы при запуске нескольких экземпляров MySQL Router и их сообщения в журнале событий.
Например:
[DEFAULT] event_source_name = MySQLRouterService
-
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/. -
Type String Default Value (Windows) Default Value (Other) /usr/local/lib/mysqlrouterПуть к плагинам MySQL Router. Эта папка должна совпадать с каталогом установки MySQL Router. Вы должны устанавливать это значение только в случае пользовательской установки, где плагины находятся не в стандартном месте установки.
Значение по умолчанию:
/usr/local/lib/mysqlrouter -
Type String Default Value (Windows) Default Value (Other) /run/mysqlrouterПуть к файлам времени выполнения MySQL Router.
Значение по умолчанию:
/run/mysqlrouter -
Command-Line Format --master-key-writer file_pathType String Скрипт, который считывает главный ключ из STDIN. Устанавливается с помощью параметра загрузки командной строки
--master-key-writer. -
Command-Line Format --master-key-reader file_pathType String Скрипт, который возвращает главный ключ в STDOUT. Устанавливается с помощью параметра загрузки командной строки
--master-key-reader. -
Type String Default Value (Windows) Default Value (Other) /usr/local/etc/mysqlrouterПуть к файлам конфигурации MySQL Router.
Примечаниеconfig_folderв настоящее время устанавливается во время компиляции. Этот параметр может использоваться будущими плагинами, если у них будут собственные файлы конфигурации.Значение по умолчанию:
/usr/local/etc/mysqlrouter -
Type String Valid Values (Windows) consolelogfilelogeventlogValid Values (Other) consolelogfilelogsyslogПриемник(и) (различные методы ведения журналов), в которые отправляется определенный уровень журнала.
Поддерживаемые значения приемника:
consolelog,filelog,eventlog(в Windows) иsyslog(в системах на основе Unix). Используйте список, разделенный запятыми, чтобы определить несколько значений.Значение по умолчанию:
filelog, если параметрlogging_folderне пустой в разделе "[DEFAULT]", иначеconsolelog.Например, чтобы настроить регистратор для использования файла, консоли и журнала событий, каждый из которых использует уровень журнала отладки, настроенный в разделе [logger]:
[logger] level=debug sinks=consolelog,eventlog,filelog
-
Type String Default Value (Windows) %PROGRAMDATA%\MySQL\MySQL Router\keyring-dataDefault 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
-
Type String Default Value (Windows) %PROGRAMDATA%\MySQL\MySQL Router\mysqlrouter.keyDefault Value (Other) /run/mysql-router/mysqlrouter.keyРасположение файла master key. Этот параметр позволяет выполнять автоматическое расшифрование, так как в противном случае его расположение запрашивается при запуске.
Если этот параметр не указан, используются системные пути по умолчанию.
Пример использования:
keyring_path = /opt/myrouter/data/keyring master_key_path = /opt/myrouter/mysqlrouter.key
-
Type String Default Value warningValid Values warningerrorОпределяет поведение MySQL Router при обработке неизвестных параметров конфигурации, таких как опечатки.
Поведение по умолчанию — предупреждение, а при загрузке оно определяется как ошибка в созданном конфигурационном файле. Предупреждение регистрирует предупреждающее сообщение, но не приводит к остановке, тогда как ошибка означает, что MySQL Router не может инициализироваться и завершается.
[DEFAULT] unknown_config_option=warning
-
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 --bootstraplocalhost:3310--directory/a/path/myrouter--usersnoopyВ этом примере Router создает
/a/path/myrouterи добавляет сюда все созданные файлы и каталоги, и только системный пользовательsnoopyможет записывать в них. Кроме того,userопределяется в созданном конфигурационном файле/a/path/myrouter/mysqlrouter.conf:[DEFAULT] user=snoopy
ПримечаниеЭто отличается от определения
user, определенного в разделе[metadata_cache], которое является пользователем MySQL. -
Type String Путь к файлу SSL CA для проверки сертификата сервера при подключении к серверам метаданных.
Может быть установлен с помощью параметра загрузки
--ssl-ca. -
Type String Путь к каталогу, содержащему файлы SSL CA для проверки сертификата сервера при подключении к серверам метаданных.
Может быть установлен с помощью параметра загрузки
--ssl-capath. -
Type String Путь к файлу SSL CRL, который используется при подключении к серверам метаданных и проверке их сертификата SSL.
Может быть установлен с помощью параметра загрузки
--ssl-crl. -
Type String Путь к каталогу, содержащему файлы SSL CRL, которые используются при подключении к серверам метаданных и проверке их сертификата SSL.
Может быть установлен с помощью параметра загрузки
--ssl-crlpath. -
Type String Список версий TLS, разделенных запятыми, которые необходимо запросить, например, 'TLSv1.2,TLSv1.3', если SSL включен.
Может быть установлен с помощью параметра загрузки
--tls-version. -
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_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
-
Специфично для платформы 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-доменного сокета зависит от платформы и не должен превышать разрешенной системой длины.
-
Тип Строка Значение по умолчанию classicДопустимые значения classicxИспользуется плагином маршрутизации при подключении к целевому серверу 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. Это можно задать тремя способами (в порядке приоритета): опцией командной строки
--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. -
Тип Целое число Значение по умолчанию 5Минимальное значение 1Максимальное значение 65536Значение тайм-аута, используемое MySQL Router при подключении к целевому серверу MySQL. Значение не может быть неограниченным, и неверное значение приводит к ошибке конфигурации. Допустимый диапазон составляет от 1 до 65536. Это значение следует держать низким.
Пример использования:
[routing] connect_timeout = 5
Может быть задано при запуске с помощью
--conf-set-option=routing.connect_timeout. -
Тип Целое число Значение по умолчанию 5Значение тайм-аута, используемое MySQL Router при подключении к серверу метаданных MySQL.
Пример использования:
[DEFAULT] connect_timeout = 5
Может быть задано при запуске с помощью либо
--connect-timeout, либо--conf-set-option=DEFAULT.connect_timeout. -
Тип Целое число Значение по умолчанию 30Значение тайм-аута, используемое MySQL Router при чтении из сервера метаданных MySQL. Значение по умолчанию — 30 секунд.
Пример использования:
[DEFAULT] read_timeout = 30
-
Тип Строка Предоставляет информацию о хосте для установления соединений. Принимает либо список адресов пунктов назначения, разделенных запятыми, либо ссылку на кэш метаданных 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_strategymysqlrouter.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 для закрытия этих существующих подключений.
ПримечаниеСвязанные с этим условия, приводящие к разрыву соединений: подключение к первичному серверу после понижения его до вторичного, а также подключения к узлу, который больше не является частью кластера.
-
Тип Строка Этот параметр отслеживает и хранит адреса активных серверов метаданных 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" } -
Тип Строка Допустимые значения first-availablenext-availableround-robinround-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.
-
Тип Целое число Значение по умолчанию 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]устанавливает значение по умолчанию для каждого пункта назначения маршрутизации. -
Тип Целое число Значение по умолчанию 512Минимальное значение 1Максимальное значение 9223372036854775807Максимальное количество подключений клиентов, обрабатываемых маршрутизатором, для предотвращения исчерпания дескрипторов файлов.
Это аналогично системной переменной сервера.
[DEFAULT] max_total_connections = 512
ПримечаниеПараметр
max_connectionsустаревшего типа задает значение для каждого экземпляра маршрутизации, например, одно значение для только для чтения и другое для только для записи. Параметрmax_total_connectionsзадает одно значение для всех экземпляров маршрутизации вместе.Значение по умолчанию — 512, оно задается в разделе
[DEFAULT]. -
Тип Целое число Значение по умолчанию 64Минимальное значение 1Максимальное значение 65535Размер стека, выделенный для каждого потока. Измеряется в килобайтах и по умолчанию равен 64.
[DEFAULT] thread_stack_size=128
-
Тип Целое число Устанавливает параметр MySQL-сервера.
-
Тип Целое число Значение по умолчанию 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
-
Тип Целое число Значение по умолчанию 9Минимальное значение 2Максимальное значение 31536000Это аналогично системной переменной сервера.
Значение по умолчанию — 9, на единицу меньше значения по умолчанию MySQL 5.7. Допустимый диапазон — от 2 до 31536000.
client_connect_timeout = 9
-
Тип Числовое Значение по умолчанию 2Минимальное значение 0.001Максимальное значение 3600Время (в секундах) между попытками обновления кэша аутентификации. По умолчанию 2. Значение должно быть меньше
auth_cache_ttlи большеttl, иначе Router не запустится.Этот параметр применяется, если параметр http_auth_backend раздела
backendустановлен в metadata_cache; это функция Router REST API. -
Тип Числовое Значение по умолчанию -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, а в предыдущих версиях подключение всегда закрывалось после обновления.
-
Тип Целое число Максимальное значение 4294967295Идентификатор MySQL Router.
-
Type String Default Value Имя файла сертификата открытого ключа SSL в формате PEM. Используется для обеспечения аутентификации на стороне сервера во время процесса загрузки.
-
Type String Default Value Имя файла закрытого ключа SSL в формате PEM, используемого для шифрования соединений маршрутизатора с сервером. См. также Раздел 4.4, «Конфигурация TLS» .
-
Type String По умолчанию используется защищённый список кривых SSL. Сформируйте эту строку как список имён кривых, разделённых двоеточиями.
-
Type String По умолчанию используется защищённый список шифров SSL. Сформируйте эту строку как список имён шифров, разделённых двоеточиями.
-
Type String Default Value DISABLEDValid Values DISABLEDVERIFY_CAVERIFY_IDENTITYПроверка сертификатов SSL, предоставленных сервером маршрутизатору.
DISABLED: соединение прерывается, если сервер не предоставляет сертификат при установлении соединения.VERIFY_CA: соединение прерывается, если сертификат сервера не соответствует доверенному центру сертификации (ЦС), которому доверяет MySQL Router.VERIFY_IDENTITY: соединение прерывается, если сертификат сервера не соответствует доверенному центру сертификации (ЦС), которому доверяет MySQL Router, или субъект сертификата сервера не соответствует имени хоста или IP-адресу, к которому подключился MySQL Router.
-
Type String Default Value AS_CLIENTValid Values AS_CLIENTDISABLEDPREFERREDREQUIREDРежим соединения SSL, используемый при соединении между MySQL Router и сервером. См. также Раздел 4.4, «Конфигурация TLS» .
-
Command-Line Format --server-ssl-ca file_pathType String Default Value Имя файла сертификата центра сертификации (ЦС) в формате PEM. Файл содержит список доверенных центров сертификации SSL. См. также Раздел 4.4, «Конфигурация TLS» .
-
Command-Line Format --server-ssl-capath dir_pathType String Default Value Имя каталога, содержащего файлы сертификатов доверенных центров сертификации SSL (ЦС) в формате PEM. См. также Раздел 4.4, «Конфигурация TLS» .
-
Command-Line Format --client-ssl-cert file_pathType String Default Value Имя файла сертификата открытого ключа SSL в формате PEM. Используется для обеспечения аутентификации на стороне клиента во время процесса загрузки.
Как и
-client_ssl_key, этот параметр используется только во время загрузки, которая использует учётную запись root. Это полезно, когда учётная запись root была создана с REQUIRE X509, и поэтому для входа в систему как root требуется, чтобы клиент аутентифицировал себя. -
Command-Line Format --server-ssl-crlpath dir_pathType String Default Value Путь к каталогу, содержащему файлы списков отзыва сертификатов в формате PEM. См. также Раздел 4.4, «Конфигурация TLS» .
-
Command-Line Format --server-ssl-crl file_pathType String Default Value Имя файла, содержащего списки отзыва сертификатов в формате PEM. См. также Раздел 4.4, «Конфигурация TLS» .
-
Command-Line Format --client-ssl-key file_pathType String Default Value Имя файла закрытого ключа SSL в формате PEM, используемого для шифрования соединений клиента с маршрутизатором. См. также Раздел 4.4, «Конфигурация TLS» .
-
Type String Имя файла параметров DH. Если указано и не пусто, параметры DH из этого файла используются вместо внутренних параметров DH по умолчанию. Отформатируйте файл параметров DH в формате PEM.
-
Type String Какие кривые разрешены между клиентом и MySQL Router, по умолчанию используется защищённый список кривых SSL. Сформируйте эту строку как список имён кривых, разделённых двоеточиями.
-
Type String Какие шифры разрешены между клиентом и MySQL Router, по умолчанию используется защищённый список шифров SSL. Сформируйте эту строку как список имён шифров, разделённых двоеточиями.
-
Type String Default Value PREFERREDValid Values PREFERREDDISABLEDPASSTHROUGHREQUIREDУправляет тем, должны ли соединения от клиента к MySQL Router быть зашифрованы. См. также Раздел 4.4, «Конфигурация TLS» .
-
Тип Строка Значение по умолчанию PREFERREDДопустимые значения PREFERREDDISABLEDREQUIREDVERIFY_CAVERIFY_IDENTITYРежим SSL для подключения к серверу метаданных MySQL. По умолчанию используется
PREFERRED, если не задано иное.При значении PREFERRED (по умолчанию) при запуске будет выведено предупреждение, если SSL не используется, а подключение к серверу метаданных не зашифровано.
Допустимые значения: DISABLED, PREFERRED, REQUIRED, VERIFY_CA и VERIFY_IDENTITY. Как и в случае с клиентом mysql, это значение нечувствительно к регистру.
Существует также параметр runtime для запуска; см.
--ssl-mode. -
Тип Строка Сгенерированный пользователь 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], который является системным пользователем. -
Тип Строка Название InnoDB Cluster.
ПримечаниеSQL-запрос для отображения имен кластеров MySQL InnoDB Cluster: SELECT * FROM mysql_innodb_cluster_metadata.clusters;
-
Тип Целое число Значение по умолчанию 0Допустимые значения 01Включает уведомления 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 с, по умолчанию), чтобы избежать избыточной нагрузки от повторного подключения к экземплярам и частого запроса данных о изменениях метаданных. -
Тип Числовое Значение по умолчанию 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.
-
Тип Строка Значение по умолчанию (Windows) CONЗначение по умолчанию (Другое) /dev/stderrДопустимые значения (Windows) CONNULДопустимые значения (Другое) /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
-
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
-
Type String Default Value INFOValid Values DEBUGNOTEINFOWARNINGERRORSYSTEMFATALИспользуйте плагин logger для регистрации уведомлений, ошибок и информации для отладки. Доступные уровни журнала: DEBUG, NOTE, INFO (по умолчанию), WARNING, ERROR, SYSTEM и FATAL. Эти значения нечувствительны к регистру.
Уровень INFO отображает все информационные сообщения, предупреждения и сообщения об ошибках. Уровень DEBUG отображает дополнительную диагностическую информацию из кода маршрутизатора, включая успешные маршруты. SYSTEM включает сообщения, такие как сообщения о запуске.
[logger] level = DEBUG
Поведение вывода зависит от параметра
logging_folder. Установкаlogging_folderв папку сохраняет файл журнала с именемmysqlrouter.logв эту папку. Установкаlogging_folderв пустое значение или его отсутствие выводит журнал в консоль. Он установлен в разделе [DEFAULT].Загрузка принимает файл конфигурации с использованием
--configи использует определение уровня журнала. -
Type String Точность метки времени журнала; доступные определения с примерами значений:
second, sec, or s: 2019-05-10 12:10:25millisecond, msec, or ms: 2019-05-10 12:10:25.428microsecond, usec, or us: 2019-05-10 12:10:25.428754nanosecond, nsec, ns: 2019-05-10 12:10:25.428754000
-
Type Integer Default Value 8081TCP-порт, прослушивающий HTTP-запросы; по умолчанию 8081.
-
Type String Default Value 0.0.0.0IP-адрес, привязанный к HTTP
port; по умолчанию 0.0.0.0. -
Type String Базовый каталог для запросов статических файлов; по умолчанию пуст. Пустое значение означает, что статические файлы не обслуживаются.
-
Type String Имя экземпляра [http_auth_realm].
-
Type Integer Default Value 1Valid Values 10Значение 1 включает SSL, а 0 отключает его. Требуются TLS-клиенты, поддерживающие TLSv1.2 или более поздние версии. Это определено в разделе [http_server].
-
Type String Имя файла сертификата и его цепочки сертификатов в формате PEM; требуется, если ssl=1. Это определено в разделе [http_server].
-
Type String Имя файла ключа в формате PEM; требуется, если ssl=1. Это определено в разделе [http_server].
-
Type String Спецификация шифра (см. список «шифров» openssl). По умолчанию используется разделенный запятыми список всех утвержденных шифров. Неизвестные шифры игнорируются без сообщений об ошибках. Возникает ошибка, если список шифров пуст и ssl=1. Это определено в разделе [http_server].
-
Type String Прочитать параметр DH из этого файла в формате PEM. По умолчанию используется dh-param из RFC 5114, если ssl=1. Это определено в разделе [http_server].
-
Type Integer Default Value 60Определяет частоту (в секундах), с которой MySQL Router отправляет сообщение ping keepalive. Общее количество ping-запросов определяется параметром конфигурации
runs.[keepalive] interval = 42 runs = 0
ПримечаниеПлагин keepalive существует в целях тестирования и его можно безопасно удалить после настройки MySQL Router. Поскольку для запуска требуется хотя бы один активный плагин, файл конфигурации по умолчанию включает плагин keepalive, чтобы MySQL Router не завершал работу немедленно. Плагин keepalive не активен, если включен другой плагин.
-
Тип Integer Значение по умолчанию 0Ограничивает количество интервалов, в течение которых MySQL Router отправляет сообщение keepalive ping. Установка значения 0 (по умолчанию) означает, что он выполняется до тех пор, пока MySQL Router не будет выключен. Частота определяется параметром
interval.[keepalive] interval = 42 runs = 0
ПримечаниеПлагин keepalive существует в целях тестирования и его можно безопасно удалить после настройки MySQL Router. Поскольку для запуска требуется хотя бы один активный плагин, файл конфигурации по умолчанию включает плагин keepalive, чтобы MySQL Router не завершался немедленно. Плагин keepalive не активен, если включен другой плагин.
-
Тип String Значение по умолчанию (Windows) pollЗначение по умолчанию (Другие) linux_epollДопустимые значения (Windows) pollДопустимые значения (Другие) linux_epollpollБэкэнд 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тип бэкэнда аутентификации
-
Тип Integer Значение по умолчанию 0Минимальное значение 0Максимальное значение 1024Количество потоков IO, которые обрабатывают соединения.
По умолчанию 0 (использует все доступные ядра/потоки ЦП), но также принимает число от 1 до 1024. Во время выполнения система может ограничить верхний предел за этим значением.
[io] backend=linux_epoll threads=32
-
Тип Integer Значение по умолчанию 1Минимальное значение 0Максимальное значение 2^63-1Секунды ожидания, прежде чем неактивное серверное соединение станет доступно для повторного использования другим клиентским соединением.
См. Раздел 3.4, «Общий доступ к соединениям и повторное использование».
-
Тип Integer Значение по умолчанию 0Минимальное значение 0Максимальное значение 1Включать ли общий доступ к соединениям.
См. Раздел 3.4, «Общий доступ к соединениям и повторное использование».
-
Тип Integer Значение по умолчанию 5Минимальное значение 1Максимальное значение 4294967296Секунды для хранения неактивного соединения в пуле соединений перед его закрытием. Этот параметр задается в разделе [connection_pool] и влияет на все маршруты в пуле соединений. По умолчанию 5, принимает значение от 1 до 4294967296.
-
Тип Integer Значение по умолчанию 0Минимальное значение 0Максимальное значение 4294967296Соединения, которые необходимо держать открытыми в пуле соединений после отключения клиента; и устанавливается в разделе
[connection_pool]. Значение по умолчанию равно 0, что отключает пул соединений. -
Тип Boolean Значение по умолчанию 1Включает или отключает кэш для сеансов TLS клиент-маршрутизатор.
ПримечаниеВключен по умолчанию. Если этот параметр не задан, кэш включен. Чтобы отключить кэш, необходимо явно его определить.
-
Тип Integer Значение по умолчанию 1024Минимальное значение 1Максимальное значение 2^31-1Определяет максимальное количество кэшированных сеансов. Если добавление нового сеанса в кэш приводит к тому, что количество кэшированных сеансов превышает заданный максимум, самый старый кэшированный сеанс отбрасывается, чтобы разрешить кэширование самого нового.
-
client_ssl_session_cache_timeoutТип Integer Значение по умолчанию 300Минимальное значение 1Максимальное значение 84600Определяет максимальное время, в секундах, в течение которого сеанс остается в кэше. Если время ожидания истекло, и этот сезон не используется повторно, сеанс удаляется из кэша, а соединение закрывается.
-
Тип Boolean Значение по умолчанию 1Включает или отключает кэш для сеансов TLS маршрутизатор-сервер.
ПримечаниеВключен по умолчанию. Если этот параметр не задан, кэш включен. Чтобы отключить кэш, необходимо явно его определить.
-
Тип Integer Значение по умолчанию 1024Минимальное значение 1Максимальное значение 2^31-1Определяет максимальное количество кэшированных сеансов. Если добавление нового сеанса в кэш приводит к тому, что количество кэшированных сеансов превышает заданный максимум, самый старый кэшированный сеанс отбрасывается, чтобы разрешить кэширование самого нового.
-
server_ssl_session_cache_timeoutType Integer Default Value 300Minimum Value 1Maximum Value 84600Время в секундах, по истечении которого сессии TLS удаляются из кэша сессий TLS сервера.
-
Type Integer Default Value 7Minimum Value 1Maximum 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
-
Type String Имя раздела
[http_auth_backend].ПримечаниеЭто один из нескольких параметров
backend, каждый из которых находится в отдельном[и имеет различное назначение:section][io] backendдля асинхронных операций.[http_auth_realm] backendопределяет пользовательское имя для серверной части, связанной с определенной областью[http_auth_backend] backendтип серверной части аутентификации
-
Type String Default Value basicМетод HTTP-аутентификации; по умолчанию используется basic.
-
Type String Имя области, представленное пользователю для аутентификации.
-
Type String Default Value valid-userТребует, чтобы пользователь прошел проверку с помощью серверной части аутентификации; по умолчанию используется
valid-user, что включает эту проверку. -
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тип серверной части аутентификации
-
Type String Имя файла хранилища серверной части, указывается относительно каталога
data_folder. -
Type String Valid Values grrsТип объекта AdminAPI, с которым был запущен маршрутизатор, — это либо InnoDB ReplicaSet (rs), либо InnoDB Cluster (gr). Используйте 'gr' для кластерных наборов.
На этапе загрузки выполняется оценка целевого экземпляра, и этот параметр устанавливается соответствующим образом в сгенерированном конфигурационном файле.
-
Type Integer Default Value 1Minimum Value 1Maximum Value 65535Определяет интервал в секундах между проверками подключения к помещенному в карантин целевому узлу. Если подключение возможно, целевой узел перемещается из карантина и становится доступным для соединений.
Если задано недопустимое значение, MySQL Router не запустится, и в журнал будет записана ошибка.
Например:
[destination_status] error_quarantine_threshold=5 error_quarantine_interval=20ПримечаниеЕсли параметр не определен в конфигурационном файле, используется значение по умолчанию — 1.
-
Type Integer Default Value 1Minimum Value 1Maximum 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.