启动时,MySQL Router 会读取一系列配置文件,这些文件共同构成路由器的配置。至少需要一个配置文件。
MySQL Router 从配置文件中读取选项,这些文件与传统的 INI 文件格式非常相似,包含节和选项。这些文件指定了 MySQL Router 启动时设置的选项。有关文件语法的详细信息,请参阅第 4.1 节“配置文件语法”。
选项在章节下定义,这些章节规定了选项的含义。例如,[DEFAULT] 节下的 user
指的是运行路由器的系统用户,而 [metadata_cache] 节下的 user
指的是访问元数据的 MySQL 用户。
下表按章节列出,并总结了 MySQL Router 配置文件中定义的 MySQL Router 选项。有关每个选项的详细信息,例如说明和允许的值,请参阅下表之后的文档。
常规选项
表 4.7 [DEFAULT]
选项名称 | 说明 | 类型 |
---|---|---|
config_folder |
配置文件路径 | 字符串 |
connect_timeout |
连接到元数据服务器的尝试被视为超时的秒数 | 整数 |
core-file |
在路由器崩溃时写入核心文件 | 布尔值 |
event_source_name |
仅限 Microsoft Windows 平台。定义在 Microsoft Windows 上作为服务运行时 MySQL Router 使用的服务名称。 | 字符串 |
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 |
生成的 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 |
包含受信任的 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 |
等待 read_only 目标应用写入事务的最长时间(以秒为单位),超过此时间后将回退到 read_write 目标。 | 整数 |
目标状态选项
表 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 Cluster 名称 | 字符串 |
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 Router 配置文件选项说明
-
类型 字符串 默认值 有效值 自动
定义 MySQL Router 如何处理只读和读写查询。如果启用,只读查询将被定向到只读服务器,而读写查询将被定向到读写服务器。请参阅 第 3.5 节,“读/写拆分”。
-
类型 整数 默认值 1
最小值 0
最大值 1
只读查询等待最后写入的事务。
请参阅 第 3.5 节,“读/写拆分”。
-
类型 整数 默认值 1
最小值 0
最大值 4294967295
等待 read_only 目标应用写入事务的最长时间(以秒为单位),超过此时间后将回退到 read_write 目标。
请参阅 第 3.5 节,“读/写拆分”。
-
类型 布尔值 默认值 0
如果启用,MySQL Router 将检索用户在
USER_ATTRIBUTES
表中的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 证书和证书主题。
-
命令行格式 --core-file[={0|1}]
类型 布尔值 默认值 0
如果 mysqlrouter 崩溃,则写入核心文件。核心文件的名称和位置取决于系统。在 Linux 上,名为
core.
的核心文件将写入进程的当前工作目录。pid
pid
表示服务器进程的进程 ID。在 macOS 上,如果进程具有com.apple.security.get-task-allow
授权,则名为core.
的核心文件将写入pid
/cores
目录。在 Solaris 上,使用 coreadm 命令指定核心文件的写入位置及其命名方式。在 Windows 上,名为mysqlrouter.
的小型转储文件将写入进程的当前工作目录。{pid}
.dmp -
类型 字符串 默认值 仅限 Microsoft Windows 平台。定义 MySQL Router 在 Microsoft Windows 上作为服务运行时使用的服务名称。这使您能够区分运行多个 MySQL Router 实例时的服务以及它们在事件日志中的消息。
例如
[DEFAULT] event_source_name = MySQLRouterService
-
类型 字符串 默认值 $router_basepath
MySQL Router 日志文件目录的路径。日志文件名为
mysqlrouter.log
,如果该文件已存在,则会生成或追加到该文件。将
logging_folder
设置为空值会将消息发送到控制台 (stdout)。注意在 MySQL Router 2.1 中,默认的
logging_folder
值已从 "" 更改为 Router 的基本路径。将日志发送到
/var/log/mysqlrouter/mysqlrouter.log
的示例[DEFAULT] logging_folder = /var/log/mysqlrouter
使用
--directory
引导选项时,生成的配置文件会将其设置为 $directory/log/。 -
类型 字符串 默认值(Windows) 默认值(其他) /usr/local/lib/mysqlrouter
MySQL Router 插件的路径。此文件夹必须与 MySQL Router 安装目录匹配。仅当您有一个自定义安装,并且插件不在标准安装位置时,才应设置此项。
默认值:
/usr/local/lib/mysqlrouter
-
类型 字符串 默认值(Windows) 默认值(其他) /run/mysqlrouter
MySQL Router 运行时文件的路径。
默认值:
/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 Router 配置文件的路径。
注意config_folder
当前在编译时设置。当未来的插件有自己的配置文件时,它们可以使用此选项。默认值:
/usr/local/etc/mysqlrouter
-
类型 字符串 有效值(Windows) consolelog
filelog
eventlog
有效值(其他) consolelog
filelog
syslog
定义的日志级别发送到的接收器(不同的日志记录方法)。
支持的接收器值包括:
consolelog
、filelog
、eventlog
(在 Windows 上)和syslog
(在基于 Unix 的系统上)。使用逗号分隔列表定义多个值。默认值:如果 "[DEFAULT]" 部分中的
logging_folder
选项不为空,则为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 Router 处理未知配置选项(例如拼写错误)的行为。
警告 是默认行为,引导程序在生成的配置文件中将其定义为 错误。警告会记录一条警告消息,但不会停止,而错误表示 MySQL Router 初始化失败并退出。
[DEFAULT] unknown_config_option=warning
-
类型 字符串 以名称为
user_name
的用户或数字用户 ID 为user_id
的用户身份运行 mysqlrouter。在此上下文中,““用户””指的是系统登录帐户,而不是授权表中列出的 MySQL 用户。这也可以使用--user
命令行选项在运行时分配。在 Linux 上,使用官方 DEB 或 RPM 软件包安装 Router 会在主机上创建一个名为“mysqlrouter”的本地系统用户和组,默认情况下,MySQL Router 以该用户身份运行。此帐户没有 shell 访问权限,其主目录指向存储默认配置文件的目录。
此选项的目的是以具有受限系统权限的用户身份运行 MySQL Router。如果系统上不存在该用户,或者尝试以 root 身份启动 Router,则会发出错误并退出 Router。
MySQL Router 可以在任何操作系统用户下进行引导和执行,并且不需要特殊权限,只需要对其自身文件具有读写访问权限即可。它访问的文件包括插件(读取/执行)、配置文件、日志、UNIX 域套接字文件(如果启用)等等。
默认情况下,配置文件和日志文件写入系统范围的位置,例如
/etc
和/var/log
。或者,可以使用--directory
选项将 Router 引导到其自身的独立目录中。例如$> 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 证书时要使用的 SSL CRL 文件所在目录的路径。
可以选择使用
--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
激活。引导会在 [DEFAULT] 部分下的
mysqlrouter.conf
文件中定义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
由
--bootstrap
生成的state.json
示例{ "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 仅适用于静态路由。
-
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 服务器的 max_connections 服务器系统变量。
[routing:mycluster_default_rw] max_connections = 512
或者,使用较新的
max_total_connections
配置选项,该选项为所有 Router 部分组合设置一个值。最大值取决于系统的 poll(或 linux_epoll)限制和可用 CPU 内核/线程的数量。另请参阅 [IO]
backend
和threads
配置选项。在
[DEFAULT]
部分中可选地设置max_connections
会为每个路由目标设置默认值。 -
类型 整数 默认值 512
最小值 1
最大值 9223372036854775807
Router 处理的客户端连接的最大数量,以帮助防止文件描述符耗尽。
这类似于 MySQL 服务器的 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 服务器的 max_connect_errors 服务器系统变量。
如果应用程序频繁地重新连接,这可能会导致性能略有下降,因为 MySQL Router 会尝试发现是否存在与连接相关的错误。
成功的连接会重置错误计数器。
每个路由都有自己的被阻止主机列表。被阻止的客户端会收到 MySQL 服务器错误代码 1129,并显示略有不同的错误消息:"1129: 来自 fail.example.com 的连接错误过多"。Router 日志包含被阻止客户端的额外信息,例如:INFO [...] fail.example.com 的身份验证错误 1 次(最多 100 次)WARNING [...] 阻止客户端主机 fail.example.com
max_connect_errors = 100
-
类型 整数 默认值 9
最小值 2
最大值 31536000
这类似于 MySQL 服务器的 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 功能。 -
类型 整数 最大值(≥ 8.4.1) 4294967295
最大值(8.4.0) 999999
最大值 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 文件路径
类型 字符串 默认值 PEM 格式的证书颁发机构 (CA) 证书文件的路径名。该文件包含受信任的 SSL 证书颁发机构的列表。另请参阅 第 4.4 节 “TLS 配置”。
-
命令行格式 --server-ssl-capath 目录路径
类型 字符串 默认值 包含 PEM 格式的受信任 SSL 证书颁发机构 (CA) 证书文件的目录的路径名。另请参阅 第 4.4 节 “TLS 配置”。
-
命令行格式 --client-ssl-cert 文件路径
类型 字符串 默认值 PEM 格式的 SSL 公钥证书文件的路径名。这用于在引导过程中促进客户端身份验证。
与
-client_ssl_key
类似,此选项仅在使用 root 帐户的引导过程中使用。当 root 帐户是用 REQUIRE X509 创建的,因此以 root 用户身份登录需要客户端进行自身身份验证时,此选项很有用。 -
命令行格式 --server-ssl-crlpath 目录路径
类型 字符串 默认值 包含 PEM 格式的证书吊销列表文件的目录的路径。另请参阅第 4.4 节“TLS 配置”。
-
命令行格式 --server-ssl-crl 文件路径
类型 字符串 默认值 包含 PEM 格式的证书吊销列表的文件的路径名称。另请参阅第 4.4 节“TLS 配置”。
-
命令行格式 --client-ssl-key 文件路径
类型 字符串 默认值 用于加密客户端到路由器连接的 PEM 格式的 SSL 私钥文件的路径名称。另请参阅第 4.4 节“TLS 配置”。
-
类型 字符串 DH 参数文件的名称。如果指定且不为空,则使用此文件中的 DH 参数,而不是内部默认的 DH 参数。以 PEM 格式格式化 DH 参数文件。
-
类型 字符串 客户端和 MySQL Router 之间允许哪些曲线,默认为安全 SSL 曲线列表。将此字符串格式化为以冒号分隔的曲线名称列表。
-
类型 字符串 客户端和 MySQL Router 之间允许哪些密码,默认为安全 SSL 密码列表。将此字符串格式化为以冒号分隔的密码名称列表。
-
类型 字符串 默认值 PREFERRED
有效值 PREFERRED
DISABLED
PASSTHROUGH
REQUIRED
控制从客户端到 MySQL Router 的连接是否必须加密。另请参阅第 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 Router 的操作系统帐户存储在本地密钥环系统中。然后路由器可以使用它连接到 InnoDB Cluster 并检索当前拓扑信息。默认情况下,路由器和元数据服务器之间的会话使用 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
中,则会重复使用该路由器 ID,并且其值不能超过 4294967295 (2^32-1)。注意此用户不同于
[DEFAULT]
部分中定义的用户
定义,后者是系统用户。此结构在 MySQL Router 8.4.1 中发生了变化,以前是 mysql_router_
[0-9]{1,6}
_[0-9a-z]{12}
。 -
类型 字符串 InnoDB Cluster 的名称。
注意列出 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.5 秒,默认值)以避免频繁重新连接到实例并查询元数据更改的开销。 -
类型 数字 默认值 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] 部分。将
filename
与 [logger] 一起使用以定义 [filelog] 部分的默认值,它还会将路由器的日志文件从mysqlrouter.log
更改为这个新值。[DEFAULT] logging_folder=/path/to/logs/ [logger] filename = router_error.log
如果在 [logger] 下设置了文件名但未使用基于文件的记录器,则路由器不会报告错误。
将
filename
与 [filelog] 一起使用[DEFAULT] logging_folder=/path/to/logs/ [filelog:a] filename = a_router_error.log [filelog:b] filename = b_router_error.log
如果在 [filelog] 下文件名为空或未设置,则使用 [logger] 下的文件名定义;如果在 [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] 部分下定义。
-
类型 字符串 从此文件读取 DH 参数,采用 PEM 格式。如果 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
在空闲服务器连接可供另一个客户端连接重用之前等待的秒数。
请参阅第 3.4 节“连接共享和重用”。
-
类型 整数 默认值 0
最小值 0
最大值 1
是否启用连接共享。
请参阅第 3.4 节“连接共享和重用”。
-
类型 数字 默认值 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 Router 将在定义的秒数后重试连接。根据定义的路由策略重试连接。如果未定义
connect_retry_timeout
,则默认为 7 秒。如果connect_retry_timeout
的值定义在有效值范围之外,则 MySQL Router 将无法启动。注意如果启用了连接共享,则重试的连接将连接到与初始连接尝试相同的服务器。
如果在进行身份验证后连接因瞬态错误而失败,则仅当客户端-路由器连接是 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
引导 Router 所针对的 AdminAPI 对象的类型,可以是 InnoDB ReplicaSet (rs) 或 InnoDB Cluster (gr)。对于集群集,请使用“gr”。
引导会评估目标实例,并在生成的配置文件中相应地设置此选项。
-
类型 整数 默认值 1
最小值 1
最大值 65535
定义检查隔离目标连接之间的间隔(以秒为单位)。如果可以建立连接,则目标将移出隔离状态,并可用于连接。
如果定义了无效值,MySQL Router 将无法启动,并会记录错误。
例如
[destination_status] error_quarantine_threshold=5 error_quarantine_interval=20
注意如果在配置文件中未定义,则使用默认值 1。
-
类型 整数 默认值 1
最小值 1
最大值 3600
定义在 MySQL Router 将目标添加到隔离状态并停止将其用作目标之前,连接到路由目标的连续失败尝试的阈值,直到目标被隔离机制清除。例如,如果设置为 5,则在连续 5 次尝试连接失败后,目标将被隔离。
如果定义了无效值,MySQL Router 将无法启动,并会记录错误。
例如
[destination_status] error_quarantine_threshold=5 error_quarantine_interval=20
注意如果在配置文件中未定义,则使用默认值 1。