启动时,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 |
连接尝试连接到元数据服务器之前的超时时间(以秒为单位) | 整数 |
core-file |
在路由器崩溃时写入核心文件 | 布尔值 |
event_source_name |
仅限 Microsoft Windows 平台。定义 MySQL Router 在 Microsoft Windows 上作为服务运行时使用的服务名称。 | 字符串 |
keyring_path |
密钥环文件路径 | 字符串 |
logging_folder |
路由器日志路径 | 字符串 |
master_key_path |
主密钥环文件路径 | 字符串 |
master-key-reader |
将主密钥返回到 STDOUT 的脚本 | 字符串 |
master-key-writer |
从 STDIN 读取主密钥的脚本 | 字符串 |
max_total_connections |
路由器允许的最大客户端连接总数 | 整数 |
pid_file |
存储 PID 文件的位置 | 字符串 |
plugin_folder |
路由器插件路径 | 字符串 |
runtime_folder |
运行时文件路径 | 字符串 |
sinks |
接收配置日志数据的日志记录方法 | 字符串 |
thread_stack_size |
分配给每个线程堆栈的内存大小(以 KB 为单位) | 整数 |
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 |
包含受信任的 SSL 证书颁发机构 (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 |
用于跟踪和存储活动 MySQL InnoDB 集群元数据服务器地址的生成 JSON 文件的路径 | 字符串 |
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 |
包含受信任的 SSL 证书颁发机构 (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 |
如果未刷新,则缓存失效之前的间隔时间 | 数值 |
cluster_type |
路由器针对其引导的对象 | 字符串 |
metadata_cluster |
InnoDB 集群名称 | 字符串 |
router_id |
路由器 ID | 整数 |
ssl_ca |
用于验证服务器证书的 SSL CA 文件 | 字符串 |
ssl_capath |
包含用于验证服务器证书的 SSL CA 文件的目录 | 字符串 |
ssl_crl |
用于验证服务器证书的 SSL CRL 文件 | 字符串 |
ssl_crlpath |
包含用于验证服务器证书的 SSL CRL 文件的目录 | 字符串 |
ssl_mode |
连接到元数据服务器的 SSL 连接模式,如果未设置,则默认为 PREFERRED | 字符串 |
tls_version |
如果启用了 SSL,则请求的 TLS 版本的逗号分隔列表 | 字符串 |
ttl |
生存时间(以秒为单位) | 整数 |
use_gr_notifications |
组复制通知行为 | 整数 |
user |
访问 MySQL 服务器元数据架构的 MySQL 用户 | 字符串 |
日志记录选项
表格 4.12 [logger]
选项名称 | 描述 | 类型 |
---|---|---|
destination |
要记录的设备名称;可选择与 [consolelog] 一起使用 | 字符串 |
文件名 |
日志文件名;可选择与 [logger] 和 [filelog] 一起使用 | 字符串 |
级别 |
日志级别 | 字符串 |
时间戳精度 |
日志记录器时间戳精度 | 字符串 |
HTTP 服务器选项
表 4.13 [http_server]
选项名称 | 描述 | 类型 |
---|---|---|
bind_address |
绑定到 HTTP 端口的 IP 地址 | 字符串 |
端口 |
HTTP 服务器 TCP 端口 | 整数 |
require_realm |
[http_auth_realm] 名称 | 字符串 |
ssl_cert |
SSL 证书文件名 | 字符串 |
ssl_cipher |
已批准的 SSL 密码 | 字符串 |
ssl_dh_param |
DH 参数文件名 | 字符串 |
ssl |
启用 TLSv1.2 或更高版本支持 | 整数 |
ssl_key |
SSL 密钥文件名 | 字符串 |
static_folder |
HTTP 服务器静态文件请求的目录 | 字符串 |
MySQL 路由器配置文件选项说明
-
类型 字符串 默认值 有效值 auto
定义 MySQL 路由器如何处理只读和读写查询。如果启用,只读查询将被定向到只读服务器,而读写查询将被定向到读写服务器。请参阅 第 3.5 节,“读/写分离”.
-
类型 整数 默认值 1
最小值 0
最大值 1
只读查询等待最后写入的事务。
请参阅 第 3.5 节,“读/写分离”.
-
类型 整数 默认值 1
最小值 0
最大值 4294967295
在回退到读写目标之前,等待只读目标应用写入事务的最大时间(以秒为单位)。
请参阅 第 3.5 节,“读/写分离”.
-
类型 布尔值 默认值 0
如果启用,MySQL 路由器将检索用户在
USER_ATTRIBUTES
表中的router_requires
属性中定义的值。该属性必须采用以下格式
{router_require: {value}}
以下是可能的取值
{}
: 没有要求。{ssl: true}
: MySQL 路由器要求来自客户端的 SSL。{x509: true}
: MySQL 路由器要求来自客户端的 SSL 和 x509 证书。{issuer: ""}
: MySQL 路由器要求来自客户端的 SSL、x509 证书和证书颁发者。{ssl: true}
: MySQL 路由器要求来自客户端的 SSL、x509 证书和证书主体。
-
命令行格式 --core-file[={0|1}]
类型 布尔值 默认值 0
如果 mysqlrouter 崩溃,则写入核心文件。核心文件的名称和位置取决于系统。在 Linux 上,名为
core.
的核心文件将写入进程的当前工作目录。pid
pid
代表服务器进程的进程 ID。在 macOS 上,名为core.
的核心文件将写入pid
/cores
目录,前提是进程具有com.apple.security.get-task-allow
授权。在 Solaris 上,使用 coreadm 命令来指定核心文件的写入位置以及如何命名。在 Windows 上,名为mysqlrouter.
的小型转储文件将写入进程的当前工作目录。{pid}
.dmp -
类型 字符串 默认值 仅限 Microsoft Windows 平台。定义 MySQL 路由器在 Microsoft Windows 上作为服务运行时使用的服务名称。这使您能够在运行多个 MySQL 路由器实例以及它们在事件日志中的消息之间进行区分。
例如
[DEFAULT] event_source_name = MySQLRouterService
-
类型 字符串 默认值 $router_basepath
MySQL 路由器日志文件目录的路径。日志文件名为
mysqlrouter.log
,如果该文件已存在,则生成或追加到该文件。将
logging_folder
设置为空值会将消息发送到控制台(stdout)。注意默认的
logging_folder
值已从 "" 更改为路由器的基本路径,在 MySQL 路由器 2.1 中。将日志发送到
/var/log/mysqlrouter/mysqlrouter.log
的示例[DEFAULT] logging_folder = /var/log/mysqlrouter
当使用
--directory
引导选项时,生成的配置文件将其设置为 $directory/log/。 -
类型 字符串 默认值(Windows) 默认值(其他) /usr/local/lib/mysqlrouter
MySQL 路由器插件的路径。此文件夹必须与 MySQL 路由器安装目录匹配。如果您有自定义安装,其中插件不在标准安装位置,则应仅设置此选项。
默认值:
/usr/local/lib/mysqlrouter
-
类型 字符串 默认值(Windows) 默认值(其他) /run/mysqlrouter
MySQL 路由器运行时文件的路径。
默认值:
/run/mysqlrouter
-
命令行格式 --master-key-writer file_path
类型 字符串 从 STDIN 读取主密钥的脚本。使用
--master-key-writer
命令行引导选项设置。 -
命令行格式 --master-key-reader file_path
类型 字符串 将主密钥返回到 STDOUT 的脚本。使用
--master-key-reader
命令行引导选项设置。 -
类型 字符串 默认值(Windows) 默认值(其他) /usr/local/etc/mysqlrouter
MySQL 路由器配置文件的路径。
注意config_folder
目前在编译时设置。当将来插件有自己的配置文件时,可以使用此选项。默认值:
/usr/local/etc/mysqlrouter
-
类型 字符串 有效值(Windows) consolelog
filelog
eventlog
有效值(其他) consolelog
filelog
syslog
定义的日志级别将发送到的接收器(不同的日志记录方法)。
支持的接收器值是:
consolelog
、filelog
、eventlog
(在 Windows 上)和syslog
(在基于 Unix 的系统上)。使用逗号分隔的列表定义多个值。默认值: 如果
logging_folder
选项在“[DEFAULT]”部分中不为空,则为filelog
,否则为consolelog
。例如,要将记录器配置为使用文件、控制台和事件日志,每个都使用 [logger] 部分中配置的调试日志级别
[logger] level=debug sinks=consolelog,eventlog,filelog
-
类型 字符串 默认值(Windows) %PROGRAMDATA%\MySQL\MySQL Router\keyring-data
默认值(其他) /run/mysql-router/keyring-data
指向密钥环文件的位置。
系统范围的引导不会将此选项添加到生成的配置文件中,并假设密钥环文件位于系统范围的运行时状态目录中。如果还使用了
--directory
,则密钥环文件将存储在该实例的运行时状态目录下,位于指定目录中的run/
下。如果未定义此选项,将使用系统范围的默认路径。
示例用法
keyring_path = /opt/myrouter/data/keyring master_key_path = /opt/myrouter/mysqlrouter.key
-
类型 字符串 默认值(Windows) %PROGRAMDATA%\MySQL\MySQL Router\mysqlrouter.key
默认值(其他) /run/mysql-router/mysqlrouter.key
主密钥文件的位置。此选项允许无人值守解密,否则会在启动时请求其位置。
如果未指定此选项,将使用系统范围的默认路径。
示例用法
keyring_path = /opt/myrouter/data/keyring master_key_path = /opt/myrouter/mysqlrouter.key
-
类型 字符串 默认值 警告
有效值 警告
错误
确定 MySQL 路由器处理未知配置选项(例如拼写错误)的行为。
警告 是默认行为,引导将其定义为 错误,在生成的配置文件中。警告会记录警告消息,但不会停止,而错误意味着 MySQL 路由器无法初始化并退出。
[DEFAULT] unknown_config_option=warning
-
类型 字符串 以具有名称
user_name
或数字用户 IDuser_id
的用户的身份运行 mysqlrouter。在此上下文中,“用户” 指的是系统登录帐户,而不是授权表中列出的 MySQL 用户。这也可以在运行时使用--user
命令行选项来分配。在 Linux 上,使用官方 DEB 或 RPM 包安装路由器会在主机上创建名为“mysqlrouter”的本地系统用户和组,默认情况下 MySQL 路由器以该用户身份运行。该帐户没有 shell 访问权限,其主目录指向存储默认配置文件的目录。
此选项的目的是以具有受限系统权限的用户身份运行 MySQL 路由器。如果系统上不存在该用户,或者尝试以 root 身份启动路由器,则会发出错误消息并退出路由器。
MySQL 路由器可以在任何操作系统用户下引导和执行,除了对其自身文件的读写访问权限之外,不需要任何特殊权限。它访问的文件包括插件(读/执行)、配置文件、日志、UNIX 域套接字文件(如果启用)等等。
默认情况下,配置文件和日志文件被写入系统范围的位置,例如
/etc
和/var/log
。或者,可以使用--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 文件的路径。
可以使用
--ssl-ca
引导选项进行可选设置。 -
类型 字符串 包含 SSL CA 文件的目录路径,这些文件用于在连接到元数据服务器时验证服务器证书。
可以使用
--ssl-capath
引导选项进行可选设置。 -
类型 字符串 连接到元数据服务器并验证其 SSL 证书时使用的 SSL CRL 文件的路径。
可以使用
--ssl-crl
引导选项进行可选设置。 -
类型 字符串 包含 SSL CRL 文件的目录路径,这些文件用于在连接到元数据服务器并验证其 SSL 证书时使用。
可以使用
--ssl-crlpath
引导选项进行可选设置。 -
类型 字符串 如果启用了 SSL,则请求的 TLS 版本的逗号分隔列表,例如 'TLSv1.2,TLSv1.3'。
可以使用
--tls-version
引导选项进行可选设置。 -
类型 字符串 默认值 127.0.0.1
与可选的
bind_address
选项相关的信息路由条目可以绑定到网络接口 (NIC)。默认的
bind_address
是 127.0.0.1。如果此处未定义端口,则需要设置bind_port
。默认情况下,
--bootstrap
为生成的 Router 配置文件中的每个路由设置bind_address=0.0.0.0
。可以使用--conf-bind-address
更改此值。绑定到特定的 IPv4 或 IPv6 地址允许并确保 MySQL Router 不会在不允许执行任何操作的 NIC 上启动和路由服务。
每个路由配置组只能指定一个绑定地址。但是,使用 0.0.0.0:
$port
(其中您定义 $port)将绑定主机上的所有网络接口 (IP)。也可以使用 IPv6 地址。
示例用法
bind_address = 127.0.0.1:7001
注意bind_address
不能列在destinations
列表中。 -
类型 整数 可选地,可以使用
bind_port
为bind_address
定义一个默认端口。如果在bind_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
选项启用套接字,该选项可以与或不与 TCPbind_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
有效值 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
选项还会影响每个目标使用的默认端口。如果未配置目标端口,则默认端口为 "classic"(默认)的 3306 或 "x"(X 协议)的 33060。 -
类型 字符串 设置 PID 文件的位置。这可以通过三种不同的方式设置(按优先级排序):
--pid-file
命令行选项、在 Router 的配置文件中设置此pid_file
选项,或定义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 集群的元数据缓存链接。
使用特定主机的示例用法(静态路由)
destinations = a.example.com,b.example.com,c.example.com
使用 InnoDB 集群元数据缓存的示例用法
destinations=metadata-cache://mycluster/default?role=PRIMARY
metadata-cache
URI 选项为-
role
: 确定可用于连接的实例类型。可接受的值为 PRIMARY、SECONDARY 或 PRIMARY_AND_SECONDARY。routing_strategy
mysqlrouter.conf
选项定义了具体的策略,默认的元数据缓存路由策略为 round-robin。 disconnect_on_promoted_to_primary
: 控制在将辅助副本提升为主副本时是否关闭到辅助副本的现有客户端连接。默认值为 "no",表示在提升后不会关闭到提升的辅助副本的现有客户端连接。在 URI 中设置 disconnect_on_promoted_to_primary=yes 以关闭这些现有连接。disconnect_on_metadata_unavailable
: 控制在组过载时是否关闭现有客户端连接。默认值为 "no",表示在组过载时不会关闭现有客户端连接。在 URI 中设置 disconnect_on_metadata_unavailable=yes 以关闭这些现有连接。
注意相关的是,这些条件会导致断开连接:在主副本降级为辅助副本后连接到主副本,以及连接到不再属于集群的节点。
-
-
类型 字符串 此选项跟踪和存储活动的 MySQL InnoDB 集群元数据服务器地址,并在重启 Router 时加载它们。此功能由
--bootstrap
激活。引导定义了
mysqlrouter.conf
文件中 [DEFAULT] 部分下的dynamic_state
选项。该值是名为state.json
的 JSON 文件的路径,该文件是在引导 Router 时创建的。state.json
初始化了 InnoDB 集群元数据服务器地址和组复制 ID(InnoDB 集群返回的 group_replication_name);在 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-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 只适用于静态路由。
-
The
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 之间。
这类似于 MySQL Server 的 max_connections 服务器系统变量。
[routing:mycluster_default_rw] max_connections = 512
或者,使用更新的
max_total_connections
配置选项,为所有 Router 部分组合设置一个值。最大值取决于系统轮询(或 linux_epoll)限制和可用 CPU 内核/线程的数量。另请参见 [IO]
backend
和threads
配置选项。可以选择在
[DEFAULT]
部分设置max_connections
,为每个路由目标设置默认值。 -
类型 整数 默认值 512
最小值 1
最大值 9223372036854775807
Router 处理的客户端连接的最大数量,以帮助防止文件描述符耗尽。
这类似于 MySQL Server 的 max_connections 服务器系统变量。
[DEFAULT] max_total_connections = 512
注意传统的
max_connections
选项为每个路由实例设置一个值,例如,为只读设置一个值,为只写设置另一个值。max_total_connections
选项为所有路由实例组合设置一个值。默认值为 512,它是在
[DEFAULT]
部分下设置的。 -
类型 整数 默认值 64
最小值 1
最大值 65535
为每个线程分配的堆栈大小。它以千字节为单位,默认值为 64。
[DEFAULT] thread_stack_size=128
-
类型 整数 设置
net_buffer_length
MySQL 服务器选项。 -
类型 整数 默认值 100
最小值 1
最大值 4294967295
默认值为 100,有效范围在 1 到 2^32 (4294967295,无符号整数) 之间。
这类似于 MySQL Server 的 max_connect_errors 服务器系统变量。
如果应用程序频繁重新连接,这可能会导致轻微的性能下降,因为 MySQL Router 会尝试发现是否存在连接相关的错误。
成功连接会重置错误计数器。
每个路由都有自己被阻止的主机列表。被阻止的客户端会收到 MySQL Server 错误代码 1129,以及略微不同的错误消息:“1129:fail.example.com 连接错误过多”。Router 日志包含有关被阻止客户端的更多信息,例如:INFO [...] fail.example.com 的 1 个身份验证错误(最大值 100)WARNING [...] 阻止客户端主机 fail.example.com
max_connect_errors = 100
-
类型 整数 默认值 9
最小值 2
最大值 31536000
这类似于 MySQL Server 的 connect_timeout 服务器系统变量。
默认值为 9,比 MySQL 5.7 默认值少 1。有效范围在 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 功能。 -
类型 整数 最大值 4294967295
MySQL Router ID。
-
类型 字符串 默认值 PEM 格式的 SSL 公钥证书文件的路径名。这用于在引导过程中促进服务器端身份验证。
-
类型 字符串 默认值 PEM 格式的 SSL 私钥文件的路径名,用于加密路由器到服务器的连接。另请参见 第 4.4 节,“TLS 配置” 。
-
类型 字符串 默认值为安全的 SSL 曲线列表。将此字符串格式化为以冒号分隔的曲线名称列表。
-
类型 字符串 默认值为安全的 SSL 密码列表。将此字符串格式化为以冒号分隔的密码名称列表。
-
类型 字符串 默认值 DISABLED
有效值 DISABLED
VERIFY_CA
VERIFY_IDENTITY
验证服务器向路由器提供的 SSL 证书。
DISABLED
:如果服务器在握手过程中未提供证书,则连接会失败。VERIFY_CA
:如果服务器的证书与 MySQL Router 信任的 CA 不匹配,则连接会失败。VERIFY_IDENTITY
:如果服务器的证书与 MySQL Router 信任的 CA 不匹配,或者服务器证书的主题与 MySQL Router 连接到的主机名或 IP 地址不匹配,则连接会失败。
-
类型 字符串 默认值 AS_CLIENT
有效值 AS_CLIENT
DISABLED
PREFERRED
REQUIRED
在 MySQL Router 和服务器之间建立连接时使用的 SSL 连接模式。另请参见 第 4.4 节,“TLS 配置” 。
-
命令行格式 --server-ssl-ca file_path
类型 字符串 默认值 PEM 格式的证书颁发机构 (CA) 证书文件的路径名。该文件包含受信任的 SSL 证书颁发机构列表。另请参见 第 4.4 节,“TLS 配置” 。
-
命令行格式 --server-ssl-capath dir_path
类型 字符串 默认值 包含 PEM 格式的受信任 SSL 证书颁发机构 (CA) 证书文件的目录的路径名。另请参见 第 4.4 节,“TLS 配置” 。
-
命令行格式 --client-ssl-cert file_path
类型 字符串 默认值 PEM 格式的 SSL 公钥证书文件的路径名。这用于在引导过程中促进客户端身份验证。
与
-client_ssl_key
一样,此选项仅在使用 root 帐户的引导过程中使用。当 root 帐户使用 REQUIRE X509 创建时,它很有用,因此以 root 身份登录需要客户端进行身份验证。 -
命令行格式 --server-ssl-crlpath dir_path
类型 字符串 默认值 包含 PEM 格式证书吊销列表文件的目录路径。另请参阅 第 4.4 节,“TLS 配置” 。
-
命令行格式 --server-ssl-crl file_path
类型 字符串 默认值 包含 PEM 格式证书吊销列表文件的路径名。另请参阅 第 4.4 节,“TLS 配置” 。
-
命令行格式 --client-ssl-key file_path
类型 字符串 默认值 用于加密客户端到路由器连接的 PEM 格式 SSL 私钥文件路径名。另请参阅 第 4.4 节,“TLS 配置” 。
-
类型 字符串 DH 参数文件的文件名。如果指定且不为空,则使用此文件中的 DH 参数,而不是内部默认 DH 参数。以 PEM 格式格式化 DH 参数文件。
-
类型 字符串 客户端和 MySQL 路由器之间允许使用哪些曲线,默认值为安全的 SSL 曲线列表。将此字符串格式化为以冒号分隔的曲线名称列表。
-
类型 字符串 客户端和 MySQL 路由器之间允许使用哪些密码,默认值为安全的 SSL 密码列表。将此字符串格式化为以冒号分隔的密码名称列表。
-
类型 字符串 默认值 PREFERRED
有效值 PREFERRED
DISABLED
PASSTHROUGH
REQUIRED
控制来自客户端到 MySQL 路由器的连接是否必须加密。另请参阅 第 4.4 节,“TLS 配置” 。
-
类型 字符串 默认值 PREFERRED
有效值 PREFERRED
DISABLED
REQUIRED
VERIFY_CA
VERIFY_IDENTITY
连接到 MySQL 元数据服务器的 SSL 模式。如果未设置,则默认为
PREFERRED
。当设置为 PREFERRED(默认值)时,引导程序将在未使用 SSL 且连接到元数据服务器未加密时发出警告。
可用值为 DISABLED、PREFERRED、REQUIRED、VERIFY_CA 和 VERIFY_IDENTITY。与 mysql 客户端一样,此值不区分大小写。
引导程序也具有运行时选项;请参阅
--ssl-mode
。 -
类型 字符串 具有访问 MySQL 服务器元数据模式权限的生成的 MySQL 用户。此用户的密码是自动生成的,并存储在加密的 密钥环 中。默认情况下,此密钥环的加密密钥存储在配置中定义的受保护读取的 主密钥存储 文件中。最常见的是,此用户和关联的密码在引导期间自动生成。相关的命令行选项为
--force-password-validation
和--password-retries
。默认情况下,生成的密码通过 STRONG validate_password 强度。密码完全由路由器管理,从不公开,并存储在使用运行 MySQL 路由器的操作系统帐户的本地密钥环系统中。然后,路由器可以使用它来连接到 InnoDB 集群并检索当前拓扑信息。路由器和元数据服务器之间的会话默认情况下使用 SSL 加密。
生成的密钥环文件存储的位置取决于引导的配置方式。对于独立安装(使用
--directory
时),它存储在独立目录下的run/
中。对于系统范围的安装,它存储在系统范围的运行时状态目录中,该目录路径是特定于平台的。有关更多信息,请参阅master_key_path
和keyring_path
此用户被分配(并需要)以下权限
Privileges needed by the Router account: On Metadata Server: SELECT ON mysql_innodb_cluster_metadata.* On Target Replica Sets: SELECT ON performance_schema.replication_group_members SELECT ON performance_schema.replication_group_member_stats
生成的用户名遵循以下模式:mysql_router_
{router_id}
_[0-9a-z]{7}
,其中 {router_id} 是数字路由器 ID,而 [0-9a-z]{7} 是 7 个随机的小写字母数字字符。如果路由器 ID 已存在于mysqlrouter.conf
中,则会重复使用它,并且其值不能超过 4294967295(2^32-1)。注意此用户不同于
user
在[DEFAULT]
部分中定义的定义,它是系统用户。 -
类型 字符串 InnoDB 集群的名称。
注意列出 MySQL InnoDB 集群名称的 SQL 查询:SELECT * FROM mysql_innodb_cluster_metadata.clusters;
-
类型 整数 默认值 0
有效值 0
1
启用组复制通知。启用后,路由器会异步收到有关大多数集群更改的通知。可以在
mysqlrouter.conf
中手动启用它,或者在引导期间使用--conf-use-gr-notifications
命令行选项在那里启用它。当路由器从组复制中收到以下任何通知时,它会刷新集群元数据
group_replication/membership/quorum_loss
group_replication/membership/view
group_replication/status/role_change
group_replication/status/state_change
注意组复制通知功能需要路由器到每个实例的 X 协议连接,该连接必须正在运行 X 插件。如果没有 X 协议连接,元数据刷新将在
ttl
间隔内执行,就像没有启用通知功能一样。虽然组复制通知依赖于 X 协议连接,但收到的通知会触发元数据刷新,该刷新使用经典的 MySQL 协议连接到实例。
启用后,组复制通知功能允许更高的
ttl
值,因为在ttl
间隔内执行的元数据刷新成为额外的保障,而不是保持有关集群状态的信息是最新的主要手段。禁用后,建议使用较低的ttl
值(例如 0.5s,默认值)以避免频繁地重新连接到实例并查询它们以获取元数据更改的开销。 -
类型 数值 默认值 0.5
最小值 0
最大值 3600
元数据缓存中信息的生命周期(以秒为单位)。
接受整数或浮点数。粒度限制为毫秒,其中 0.001 等于 1 毫秒。精度将被截断到支持的范围;例如 TTL=0.0119 被视为 11 毫秒。值 0 表示元数据缓存模块会在一个紧密的循环中连续查询元数据。
该值必须小于
auth_cache_refresh_interval
和auth_cache_ttl
,否则路由器将无法启动。唯一支持的小数分隔符是 '.'(句点),与语言环境无关,并支持科学计数法,例如 TTL=1.6E-2。
-
类型 字符串 默认值(Windows) CON
默认值(其他) /dev/stderr
有效值(Windows) CON
NUL
有效值(其他) /dev/null
/dev/stderr
/dev/stdout
将直接控制台日志输出到此设备目标;在 [consolelog] 部分下设置。默认值为 /dev/stderr,空值使用默认值。
可用值为:
/dev/stdout
、/dev/stderr
和/dev/null
;或 Windows 上的CON
和NUL
。[DEFAULT] logging_folder= [consolelog] destination=/dev/null
-
类型 字符串 将日志输出重定向到
logging_folder
目录中名为filename
的特定文件。它必须定义为文件名,而不是文件路径,并且适用于 [logger] 和 [filelog] 部分。使用 [logger] 中的
filename
来定义 [filelog] 部分的默认值,它还会将路由器的日志文件从mysqlrouter.log
更改为这个新值。[DEFAULT] logging_folder=/path/to/logs/ [logger] filename = router_error.log
如果在 [logger] 下设置了 filename 但没有使用基于文件的记录器,则路由器不会报告错误。
使用 [filelog] 中的
filename
[DEFAULT] logging_folder=/path/to/logs/ [filelog:a] filename = a_router_error.log [filelog:b] filename = b_router_error.log
如果 filename 在 [filelog] 下为空或未设置,则使用 [logger] 下的 filename 定义;如果 filename 在 [logger] 下也未设置,则使用默认日志文件(
mysqlrouter.log
)。相关,将控制台输出定向到
/dev/null
[DEFAULT] logging_folder= [consolelog] destination=/dev/null
-
类型 字符串 默认值 INFO
有效值 DEBUG
NOTE
INFO
WARNING
ERROR
SYSTEM
FATAL
使用 logger 插件记录通知、错误和调试信息。可用的日志级别为 DEBUG、NOTE、INFO(默认)、WARNING、ERROR、SYSTEM 和 FATAL。这些值不区分大小写。
INFO 级别显示所有信息消息、警告和错误消息。 DEBUG 级别显示来自路由器代码的额外诊断信息,包括成功的路由。 SYSTEM 包括启动消息等消息。
[logger] level = DEBUG
输出行为取决于
logging_folder
选项。将logging_folder
设置为文件夹会在该文件夹中保存一个名为mysqlrouter.log
的日志文件。将logging_folder
设置为空值或不设置它,会将日志输出到控制台。它设置在 [DEFAULT] 部分中。引导程序使用
--config
接受配置文件并使用记录器级别定义。 -
类型 字符串 日志记录器时间戳精度;可用的定义及其示例值如下:
秒、sec 或 s
: 2019-05-10 12:10:25毫秒、msec 或 ms
: 2019-05-10 12:10:25.428微秒、usec 或 us
: 2019-05-10 12:10:25.428754纳秒、nsec、ns
: 2019-05-10 12:10:25.428754000
-
类型 整数 默认值 8081
监听 HTTP 请求的 TCP 端口;默认为 8081。
-
类型 字符串 默认值 0.0.0.0
绑定到 HTTP
port
的 IP 地址;默认为 0.0.0.0。 -
类型 字符串 静态文件请求的基目录;默认为空。空值表示不提供静态文件。
-
类型 字符串 [http_auth_realm] 实例的名称。
-
类型 整数 默认值 1
有效值 1
0
值 1 启用 SSL,0 禁用 SSL。需要支持 TLSv1.2 或更高版本的 TLS 客户端。此选项定义在 [http_server] 部分。
-
类型 字符串 证书及其在 PEM 格式中的证书链的文件名;如果 ssl=1 则需要。此选项定义在 [http_server] 部分。
-
类型 字符串 密钥在 PEM 格式中的文件名;如果 ssl=1 则需要。此选项定义在 [http_server] 部分。
-
类型 字符串 密码规范(参见 openssl 的“ciphers”列表)。默认为所有批准密码的逗号分隔列表。未知密码将被静默忽略。如果密码列表为空且 ssl=1,则失败。此选项定义在 [http_server] 部分。
-
类型 字符串 从 PEM 格式的此文件读取 DH 参数。如果 ssl=1,则默认情况下使用 RFC 5114 中的 dh-param。此选项定义在 [http_server] 部分。
-
类型 字符串 默认值(Windows) poll
默认值(其他) linux_epoll
有效值(Windows) poll
有效值(其他) linux_epoll
poll
处理异步操作的 IO 后端。通用 poll 后端在所有平台上都可用,而每个平台可能提供其他后端。
选项为
poll
(所有平台)和linux_epoll
(Linux)。在 Linux 上默认为linux_epoll
。[io] backend=linux_epoll threads=32
注意这是几个
backend
选项之一,每个选项位于不同的[
中,具有不同的用途section
][io] backend
用于异步操作。[http_auth_realm] backend
定义与特定领域关联的后端的自定义名称[http_auth_backend] backend
身份验证后端类型
-
类型 数值 默认值 0
最小值 0
最大值 1024
处理连接的 IO 线程数。
默认为 0(使用所有可用的 CPU 内核/线程),但也接受 1 到 1024 之间的数字。在运行时,系统可能会限制此值的上线。
[io] backend=linux_epoll threads=32
-
类型 数值 默认值 1
最小值 0
最大值 2^63-1
在空闲服务器连接可供其他客户端连接重用之前等待的秒数。
-
类型 整数 默认值 0
最小值 0
最大值 1
是否启用连接共享。
-
类型 数值 默认值 5
最小值 1
最大值 4294967296
在关闭空闲连接之前,在连接池中保留空闲连接的秒数。此选项设置在 [connection_pool] 部分,并影响连接池中的所有路由。默认为 5,接受 1 到 4294967296 之间的数值。
-
类型 数值 默认值 0
最小值 0
最大值 4294967296
客户端断开连接后,在连接池中保持打开状态的连接数;并且设置在
[connection_pool]
部分。默认值为 0,它禁用连接池。 -
类型 布尔值 默认值 1
启用或禁用客户端-路由器 TLS 会话缓存。
注意默认情况下启用。如果未设置此参数,则缓存处于启用状态。要禁用缓存,您必须明确定义它。
-
类型 整数 默认值 1024
最小值 1
最大值 2^31-1
定义缓存的会话的最大数量。如果将新会话添加到缓存导致缓存的会话数超过定义的最大值,则会删除最旧的缓存会话,以允许缓存最新的会话。
-
client_ssl_session_cache_timeout
类型 整数 默认值 300
最小值 1
最大值 84600
定义会话保留在缓存中的最长时间(以秒为单位)。如果达到超时时间,并且此季节未被重用,则该会话将从缓存中删除,并关闭连接。
-
类型 布尔值 默认值 1
启用或禁用路由器-服务器 TLS 会话缓存。
注意默认情况下启用。如果未设置此参数,则缓存处于启用状态。要禁用缓存,您必须明确定义它。
-
类型 整数 默认值 1024
最小值 1
最大值 2^31-1
定义缓存的会话的最大数量。如果将新会话添加到缓存导致缓存的会话数超过定义的最大值,则会删除最旧的缓存会话,以允许缓存最新的会话。
-
server_ssl_session_cache_timeout
类型 整数 默认值 300
最小值 1
最大值 84600
从服务器 TLS 会话缓存中删除 TLS 会话之前的时间(以秒为单位)。
-
类型 整数 默认值 7
最小值 1
最大值 3600
如果经典连接因瞬态错误而失败,例如
max-connections reached
,则 MySQL 路由器将在定义的秒数后重试连接。将根据定义的路由策略重试连接。如果未定义
connect_retry_timeout
,则默认为 7 秒。如果connect_retry_timeout
的值定义在有效值范围之外,则 MySQL 路由器将无法启动。注意如果启用了连接共享,则重试的连接将与初始连接尝试连接到同一服务器。
如果连接在身份验证后因瞬态错误而失败,则只有在客户端-路由器连接经过 TLS 加密或具有公钥时,才能重试连接。
表 4.17 SSL 模式和重试
client_ssl_mode
server_ssl_mode
支持重试
PASSTHROUGH
任何
否
DISABLED
任何
否
PREFERRED
AS_CLIENT
否
PREFERRED
任何其他模式
是
REQUIRED
任何
是
-
类型 字符串 [http_auth_backend]
部分的名称。注意这是几个
backend
选项之一,每个选项位于不同的[
中,具有不同的用途section
][io] backend
用于异步操作。[http_auth_realm] backend
定义与特定领域关联的后端的自定义名称[http_auth_backend] backend
身份验证后端类型
-
类型 字符串 默认值 basic
HTTP 身份验证方法;默认为 basic。
-
类型 字符串 向身份验证用户呈现的领域的名称。
-
类型 字符串 默认值 valid-user
要求用户使用身份验证后端进行验证;默认为
valid-user
,它启用此检查。 -
类型 字符串 默认值 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
身份验证后端类型
-
类型 字符串 后端存储文件的名称,相对于
data_folder
目录。 -
类型 字符串 有效值 gr
rs
路由器引导至的 AdminAPI 对象的类型,可以是 InnoDB 复制集 (rs) 或 InnoDB 集群 (gr)。对于集群集,请使用“gr”。
引导将评估目标实例并在生成的配置文件中相应地设置此选项。
-
类型 整数 默认值 1
最小值 1
最大值 65535
定义隔离目标连接性检查之间的间隔(以秒为单位)。如果可以建立连接,则目标将从隔离中移除,并可以用于连接。
如果定义了无效值,则 MySQL 路由器将无法启动,并会记录错误。
例如
[destination_status] error_quarantine_threshold=5 error_quarantine_interval=20
注意如果在配置文件中未定义,则使用默认值 1。
-
类型 整数 默认值 1
最小值 1
最大值 3600
定义连接到路由目标的连续失败尝试次数阈值,在此阈值之后,MySQL Router 将目标添加到隔离中,并停止使用它作为目标,直到它通过隔离机制清除为止。例如,如果设置为 5,则目标在连接到它的 5 次连续失败尝试之后将被隔离。
如果定义了无效值,则 MySQL 路由器将无法启动,并会记录错误。
例如
[destination_status] error_quarantine_threshold=5 error_quarantine_interval=20
注意如果在配置文件中未定义,则使用默认值 1。