MySQL 路由器接受传递到 mysqlrouter 的命令行选项,以影响其行为,或根据 InnoDB 集群引导路由器。
启动路由器时,可以选择使用 --config
传递主配置文件的位置(否则使用默认位置),并使用 --extra-config
传递额外的配置文件。
引导命令行选项影响启动 MySQL 路由器时使用的生成文件和目录。
mysqlrouter 选项摘要
表 4.2 一般选项
选项名称 | 描述 |
---|---|
--conf-set-option | 在引导过程中为生成的配置选项设置值 |
--config | 从提供的文件读取配置选项 |
--extra-config | 在从默认位置或从 --config 选项指定的文件读取配置文件后读取此文件 |
--help | 显示帮助文本并退出 |
--pid-file | 存储 PID 文件的位置 |
--user | 以具有定义的用户名或数字用户 ID 的用户身份运行 mysqlrouter |
--version | 显示版本信息并退出 |
表 4.3 引导选项
选项名称 | 描述 |
---|---|
--account | 引导后路由器使用的 MySQL 用户帐户 |
--account-create | 引导的帐户创建行为 |
--account-host | 用于引导帐户的主机模式 |
--bootstrap | 引导并配置路由器以与 MySQL InnoDB 集群一起使用 |
--bootstrap-socket | 通过 Unix 域套接字连接到 MySQL 元数据服务器,与 --bootstrap 结合使用 |
--conf-base-port | 用于监听路由器端口的基端口 |
--conf-bind-address | 路由器监听套接字应该绑定的接口的 IP 地址 |
--conf-skip-tcp | 是否禁用为传入连接绑定 TCP 端口 |
--conf-target-cluster | 将 target_cluster 元数据选项设置为集群类型 |
--conf-target-cluster-by-name | 将 target_cluster 元数据选项设置为特定集群名称 |
--conf-use-gr-notifications | 启用组复制通知 |
--conf-use-sockets | 是否使用 Unix 域套接字 |
--connect-timeout | 连接到元数据服务器的尝试被视为超时之前的秒数 |
--directory | 为路由器的全新实例创建一个自包含目录 |
--disable-rest | 禁用将 REST API 配置详细信息生成到生成的 mysqlrouter.conf 文件中 |
--disable-rw-split | 禁用将读写分离配置详细信息生成到生成的 mysqlrouter.conf 文件中 |
--force | 强制重新配置可能已存在的路由器实例 |
--force-password-validation | 在自动创建用户帐户时,不要跳过 validate_password 机制 |
--https-port | MySQL 路由器 REST API HTTP 服务器端口 |
--master-key-reader | 将主密钥返回到 STDOUT 的脚本 |
--master-key-writer | 从 STDIN 读取主密钥的脚本 |
--name | 为路由器实例提供符号名称 |
--password-retries | 用于生成路由器用户密码的重试次数 |
--read-timeout | 对元数据服务器进行读取操作被视为超时之前的秒数 |
--report-host | 路由器的主机名;覆盖自动检测 |
--strict | 启用引导严格模式 |
表 4.4 SSL 选项
选项名称 | 描述 |
---|---|
--client-ssl-ca | PEM 格式证书颁发机构 (CA) 证书文件的路径 |
--client-ssl-capath | 包含 PEM 格式的受信任 SSL 证书颁发机构 (CA) 证书文件的目录的路径。 |
--client-ssl-cert | SSL 公钥证书文件的路径,以 PEM 格式,用于加密客户端到路由器的连接 |
--client-ssl-cipher | 客户端和 MySQL 路由器之间允许使用哪些密码,默认为安全 SSL 密码列表 |
--client-ssl-crl | 包含 PEM 格式的证书吊销列表文件的路径 |
--client-ssl-crlpath | 包含 PEM 格式的证书吊销列表文件的目录的路径 |
--client-ssl-curves | 客户端和 MySQL 路由器之间允许使用哪些曲线,默认为安全 SSL 曲线列表 |
--client-ssl-dh-params | DH 参数文件的名称。默认情况下未设置 |
--client-ssl-key | SSL 私钥文件的路径名,以 PEM 格式,用于加密客户端到路由器的连接 |
--client-ssl-mode | 控制客户端到 MySQL 路由器的连接是否必须加密,默认情况下如果未设置则为 PREFERRED |
--server-ssl-ca | PEM 格式证书颁发机构 (CA) 证书文件的路径 |
--server-ssl-capath | 包含 PEM 格式的受信任 SSL 证书颁发机构 (CA) 证书文件的目录的路径。 |
--server-ssl-cipher | 服务器的 SSL 密码 |
--server-ssl-crl | 包含 PEM 格式的证书吊销列表文件的路径 |
--server-ssl-crlpath | 包含 PEM 格式的证书吊销列表文件的目录的路径 |
--server-ssl-curves | 服务器的 SSL 曲线 |
--server-ssl-mode | 控制路由器到服务器的连接是否必须加密。 |
--server-ssl-verify | 验证服务器向路由器提供的 SSL 证书 |
--ssl-ca | 用于验证服务器证书的 SSL 证书颁发机构文件的路径 |
--ssl-capath | 包含受信任 SSL 证书颁发机构证书文件的目录 |
--ssl-cert | 客户端 SSL 证书,用于在引导期间促进客户端身份验证 |
--ssl-cipher | 如果启用了 SSL,则允许使用以冒号分隔的 SSL 密码列表 |
--ssl-crl | 用于验证服务器证书的 SSL CRL 文件的路径 |
--ssl-crlpath | 包含用于验证服务器证书的 SSL CRL 文件的目录的路径 |
--ssl-key | 用于在引导期间促进客户端身份验证的私有 SSL 密钥 |
--ssl-mode | 在引导和正常操作期间连接到元数据服务器时所需的安全性状态。类似于 mysql 客户端中的 --ssl-mode |
--tls-version | 如果启用了 SSL,则请求的 TLS 版本的逗号分隔列表 |
表 4.5 Windows 服务选项
选项名称 | 描述 |
---|---|
--clear-all-credentials | 清除所有存储的凭据 |
--install-service | 将 MySQL 路由器安装为服务,并将其设置为在 Windows 重新启动时自动启动;服务名称默认为 MySQLRouter(仅限 Windows) |
--install-service-manual | 将 MySQL 路由器安装为可以手动启动的服务;服务名称默认为 MySQLRouter(仅限 Windows) |
--remove-credentials-section | 删除某个部分的凭据 |
--remove-service | 将 MySQL 路由器从 Windows 服务中删除;服务名称默认为 MySQLRouter |
--service | 以 Windows 服务身份启动 MySQL 路由器 |
--update-credentials-section | 更新某个部分的凭据 |
mysqlrouter 选项描述
-
--version
,-V
命令行格式 --version , -V
显示应用程序的版本号和相关信息,并退出。例如
$> mysqlrouter --version MySQL Router v9.0.0 on Linux (64-bit) (GPL community edition)
-
--help
,-?
命令行格式 --help , -?
显示帮助和信息性信息,并退出。
该
--help
选项具有额外的优势。除了对每个选项的解释外,--help
选项还会显示用于查找配置文件的路径,以及几个默认路径。以下是来自 Ubuntu 16.04 机器上的--help
输出的摘录,其中显示了一个示例$> mysqlrouter --help ... Start MySQL Router. Configuration read from the following files in the given order (enclosed in parentheses means not available for reading): (/etc/mysqlrouter/mysqlrouter.conf) /home/philip/.mysqlrouter.conf Plugin Path: /usr/lib/x86_64-linux-gnu/mysqlrouter Default Log Directory: /var/log/mysqlrouter Default Persistent Data Directory: /var/lib/mysqlrouter Default Runtime State Directory: /run/mysqlrouter Usage: mysqlrouter [-V|--version] [-?|--help] ...
配置部分显示了用于读取配置文件的路径的顺序。在这种情况下,只有第二个文件是可访问的。
-
--bootstrap
,URI
-B
URI
命令行格式 --bootstrap URI, -B URI
类型 字符串 主要选项是通过连接到提供的 URI 处的 InnoDB 集群元数据服务器来执行 MySQL 路由器的引导。MySQL 路由器根据从 InnoDB 集群元数据服务器检索的信息进行自我配置。如果需要,将提示输入密码。如果未在 URI 中提供用户名,则使用默认用户名“root”。有关使用路径指定服务器实例的信息,请参阅 使用 URI 类连接字符串连接。
注意虽然
--bootstrap
接受 TCP/IP 连接的 URI,但使用--bootstrap-socket
选项并指定本地 Unix 域套接字名称,将替换传递给--bootstrap
选项的 URI 中的“主机:端口”部分,用同一台机器上的套接字。默认情况下,引导过程会执行 MySQL Router 的系统范围配置。只能配置一个 MySQL Router 实例以进行系统范围的操作。MySQL Router 的系统实例具有
router_name
为“system”。如果需要额外的实例,请使用--directory
选项来创建独立的 MySQL Router 安装。URI
: 来自 InnoDB Cluster 的服务器实例,用于从中获取元数据信息。如果提供的URI
是只读实例,MySQL Router 会自动重新连接到 InnoDB Cluster 中的读写实例,以便它可以注册 MySQL Router。如果在您使用
--bootstrap
启动 MySQL Router 时配置文件已存在,则会重复使用该文件中现有的router_id
,并执行重新配置过程。配置文件将从头开始重新生成,MySQL Router 的元数据服务器帐户将重新创建,尽管名称相同。在重新配置过程中,对现有配置文件所做的所有更改都会被丢弃。要自定义配置文件并仍然保留自动重新配置(引导)的能力,可以使用
--extra-config
命令行选项来指定在加载主配置文件后读取的附加配置文件。这些配置选项的使用是因为此附加配置文件是在加载主配置文件后加载的。引导过程会创建一个新的 MySQL 用户帐户,该帐户使用随机生成的密码供特定 MySQL Router 实例使用。当 MySQL Router 连接到元数据服务器和 InnoDB 集群以获取有关其当前状态的信息时,将使用此帐户。有关此用户的详细信息,包括其密码的存储方式以及所需的 MySQL 权限,请参阅
MySQL 用户选项
的文档。生成的配置文件名为
mysqlrouter.conf
,其位置取决于正在配置的实例类型、系统和软件包。对于系统范围的安装,生成的配置文件将添加到系统的配置目录中,例如/etc
或%PROGRAMDATA%\MySQL\MySQL Router\
。执行mysqlrouter --help
将显示此位置。如果使用超级用户 (uid=0) 执行引导,则需要
--user
选项。虽然不建议这样做,但可以通过将超级用户的名称作为参数传递来强制使用超级用户,例如 --user=root.执行
--bootstrap
所需的最低 GRANT 权限为GRANT CREATE USER ON *.* TO 'bootstrapuser'@'%' WITH GRANT OPTION; GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON mysql_innodb_cluster_metadata.* TO 'bootstrapuser'@'%'; GRANT SELECT ON mysql.user TO 'bootstrapuser'@'%'; GRANT SELECT ON performance_schema.replication_group_members TO 'bootstrapuser'@'%'; GRANT SELECT ON performance_schema.replication_group_member_stats TO 'bootstrapuser'@'%'; GRANT SELECT ON performance_schema.global_variables TO 'bootstrapuser'@'%';
使用
--bootstrap
将默认值添加到生成的 MySQL Router 配置文件中,其中一些默认值取决于其他条件。下面列出了一些影响生成的默认值的情况,其中默认值是通过仅传入--bootstrap
定义的。表 4.6 影响默认 --bootstrap 值的条件
条件 描述 --conf-base-port
修改为每种连接类型生成的
bind_port
值。默认情况下,生成的
bind_port
值如下:对于经典协议,读写使用 6446,只读使用 6447,对于 X 协议,读写使用 6448,只读使用 6449。将
--conf-base-port
设置为 0 会将默认的bind_port
值更改为以下默认值:对于经典协议,读写使用 6446,只读使用 6447,对于 X 协议,读写使用 64460,只读使用 64470。--conf-use-sockets
插入每种连接类型的 socket
定义。--conf-skip-tcp
未定义 TCP/IP 连接定义。 --directory
影响所有文件路径,还会生成其他文件。 其他 此列表并非详尽无遗,其他选项和条件也会影响生成的数值。
-
--bootstrap-socket
socket_name
命令行格式 --bootstrap-socket socket_name
平台特定 Linux 与
--bootstrap
结合使用,以使用本地 Unix 域套接字而不是 TCP/IP 进行引导。--bootstrap-socket
值将替换--bootstrap
定义中的“主机:端口”部分,用分配的套接字名称连接到使用 Unix 域套接字的 MySQL 元数据服务器。这是要从中引导的 MySQL 实例,如果使用套接字,则此实例必须位于同一台机器上。有关引导工作原理的更多详细信息,请参阅--bootstrap
.此选项不同于
--conf-use-sockets
命令行选项,该选项在引导过程中设置socket
配置文件选项。此选项在 Windows 上不可用。
-
--directory
,dir_path
-d
dir_path
命令行格式 --directory dir_path, -d dir_path
类型 字符串 指定将在定义的目录中创建独立的 MySQL Router 安装,而不是配置系统范围的路由器实例。这还允许在同一系统上创建多个路由器实例。
路由器的独立目录结构为
$path/start.sh $path/stop.sh $path/mysqlrouter.pid $path/mysqlrouter.conf $path/mysqlrouter.key $path/run $path/run/keyring $path/data $path/log $path/log/mysqlrouter.log
如果指定了此选项,则密钥环文件将存储在该实例的运行时状态目录下,位于指定目录下的
run/
目录下,而不是系统范围的运行时状态目录。如果还启用了
--conf-use-sockets
,则生成的套接字文件也会添加到此目录中。 -
命令行格式 --master-key-writer file_path
类型 字符串 此可选引导选项接受一个脚本,该脚本从 STDIN 中读取主密钥。它还使用 MySQL Router 在调用
master-key-writer
脚本之前设置的 ROUTER_ID 环境变量。master-key-writer
和master-key-reader
选项必须一起使用,使用它们意味着master_key_file
选项不得在mysqlrouter.conf
中定义,因为主密钥不会写入mysqlrouter.key
主密钥文件。这也将写入生成的 MySQL Router 配置文件,作为
master-key-writer
[DEFAULT] 选项。我们示例中使用的名为
writer.sh
的 bash 脚本的示例内容#!/bin/bash KID_=$(keyctl padd user ${ROUTER_ID} @us <&0)
示例用法
$> mysqlrouter --bootstrap=127.0.0.1:3310 --master-key-reader=./reader.sh --master-key-writer=./writer.sh
这也影响生成的
mysqlrouter.conf
,例如[DEFAULT] ... master-key-reader=reader.sh master-key-writer=writer.sh
-
命令行格式 --master-key-reader file_path
类型 字符串 此可选引导选项接受一个脚本,该脚本将主密钥写入 STDOUT。它还使用 MySQL Router 在调用
master-key-reader
脚本之前设置的 ROUTER_ID 环境变量。master-key-reader
和master-key-writer
选项必须一起使用,使用它们意味着master_key_file
选项不得在mysqlrouter.conf
中定义,因为主密钥不会写入mysqlrouter.key
主密钥文件,而是使用此选项的脚本提供的 value。这也将写入生成的 MySQL Router 配置文件,作为
master-key-reader
[DEFAULT] 选项。我们示例中使用的名为
reader.sh
的 bash 脚本的示例内容#!/bin/bash KID_=$(keyctl search @us user ${ROUTER_ID} 2>/dev/null) if [ ! -z $KID_ ]; then keyctl pipe $KID_ fi
示例用法
$> mysqlrouter --bootstrap=127.0.0.1:3310 --master-key-reader=./reader.sh # Or, multiple hosts--master-key-writer=./writer.sh
这也影响生成的
mysqlrouter.conf
,例如[DEFAULT] ... master-key-reader=reader.sh master-key-writer=writer.sh
-
命令行格式 --strict
类型 字符串 启用严格模式,例如,导致引导
--account
用户验证检查停止引导过程,而不是仅发出警告并在提供的用户未通过检查时继续。 -
命令行格式 --account username
类型 字符串 一个引导选项,用于指定要使用的 MySQL 用户,该用户将重复使用现有 MySQL 用户帐户或创建一个帐户;行为由相关的
--account-create
选项控制。使用
--account
,使用优先于易于部署的易于管理,因为多个路由器可以共享同一个帐户,并且用户名和密码是手动定义的,而不是自动生成的。设置此选项将触发此帐户的密码提示,无论密码是否在密钥环中可用。
在不传递
--account
的情况下进行引导不会重新创建现有的 MySQL 服务器帐户。使用此选项假设用户具有足够的 Router 访问权限,因为引导过程不会尝试向现有帐户添加缺失的授权。引导过程会验证权限并将失败检查的信息输出到控制台。引导过程即使在这些检查失败的情况下也会继续,除非还使用了可选的
--strict
选项。示例所需权限GRANT USAGE ON *.* TO `theuser`@`%` GRANT SELECT, EXECUTE ON `mysql_innodb_cluster_metadata`.* TO `theuser`@`%` GRANT INSERT, UPDATE, DELETE ON `mysql_innodb_cluster_metadata`.`routers` TO `theuser`@`%` GRANT INSERT, UPDATE, DELETE ON `mysql_innodb_cluster_metadata`.`v2_routers` TO `theuser`@`%` GRANT SELECT ON `performance_schema`.`global_variables` TO `theuser`@`%` GRANT SELECT ON `performance_schema`.`replication_group_member_stats` TO `theuser`@`%` GRANT SELECT ON `performance_schema`.`replication_group_members` TO `theuser`@`%`
密码不会从命令行接受。例如,传入“foo:bar”假设“foo:bar”是所需的用户名,而不是用户 foo 和密码 bar.
-
命令行格式 --account-create behavior
类型 字符串 默认值 if-not-exists
有效值 if-not-exists
always
never
指定帐户创建策略,以帮助防止意外使用错误的帐户进行引导。可能的 value 为
if-not-exists
(default): 无论如何引导;如果帐户存在,则重复使用它,否则创建它。always
: 仅在帐户不存在的情况下进行引导;并创建它。never
: 仅在帐户已存在的情况下进行引导;并重复使用它。
此选项要求也使用
--account
选项,并且--account-host
未使用。 -
命令行格式 --account-host host_pattern
类型 字符串 默认值 %
在引导过程中由 MySQL Router 创建的帐户使用的主机模式。这是可选的,默认为“%”。
多次传入此选项以定义多个模式,在这种情况下,生成的 MySQL 帐户使用相同的密码。
注意Router 不会执行完整性检查,也不会确保模式授权 Router 连接。
注意引导会通过删除和重新创建用户来重复使用现有的 Router 帐户,并且此用户重新创建过程适用于每个主机。
示例
# One host $> mysqlrouter --bootstrap localhost:3310 --account-host host1 # Or, multiple hosts $> mysqlrouter --bootstrap localhost:3310 --account-host host1 --account-host host2 --account-host host3
-
命令行格式 --conf-use-sockets
平台特定 Linux 启用本地 Unix 域套接字。
此选项在引导时使用,启用它会在生成的配置文件中添加
socket
选项。生成的套接字文件的名称取决于
protocol
选项。启用经典协议时,文件名为mysql.sock
(用于读写连接)和mysqlro.sock
(用于只读连接)。启用 X 协议时,文件名为mysqlx.sock
(用于读写连接)和mysqlxro.sock
(用于只读连接)。此选项在 Windows 上不可用。
-
命令行格式 --conf-use-gr-notifications
在引导过程中启用
use_gr_notifications
[metadata_cache] 选项。启用后,Router 会异步收到大多数集群更改的通知。有关更多信息,请参阅use_gr_notifications
。此外,使用此选项会设置ttl
=60 和auth_cache_refresh_interval
=60。 -
命令行格式 --pid-file path
类型 字符串 设置 PID 文件的位置。这可以通过三种不同的方式设置(按优先级排序):此
--pid-file
命令行选项,在 Router 的配置文件中设置pid_file
,或者定义ROUTER_PID
环境变量。如果指定了
--bootstrap
,则设置 --pid-file 会导致 Router 失败。这与 ROUTER_PID 和 pid_file 配置选项不同,如果指定了 --bootstrap,它们将被忽略。如果未指定
--bootstrap
,则以下情况会导致 Router 失败:--pid-file 已经存在,pid_file 或 ROUTER_PID 已设置但为空,或者 Router 无法写入 PID 文件。 -
命令行格式 --report-host hostname
类型 字符串 可选地定义 Router 的主机名,而不是依赖于自动检测来确定在引导过程中注册到元数据的外部可见主机名。
Router 不会检查或确认提供的主机名是否可达,但会使用 RFC 1123 验证主机名,并使用 RFC 2181 验证地址。
提供的主机名将写入 MySQL InnoDB 集群元数据存储区中 mysql_innodb_cluster_metadata.hosts 表的 host_name 字段。
-
命令行格式 --conf-skip-tcp
平台特定 Linux 跳过为侦听传入连接配置 TCP 端口。另请参阅
--conf-use-sockets
。此选项在 Windows 上不可用。
-
命令行格式 --conf-base-port port_num
类型 整数 默认值 0
通过为每个引导的路由设置
bind_port
,用于侦听 TCP 端口的基本(第一个)值。此值用于经典读写路由,每个分配的额外端口都会递增 1。端口顺序集为经典读写/只读,然后是 x 读写/只读。
将
--conf-base-port
设置为 0 会将默认的bind_port
值更改为以下默认值,这些默认值如下:对于经典协议,读写使用 6446,只读使用 6447,对于 X 协议,读写使用 64460,只读使用 64470。示例用法
# Example without --conf-base-port $> mysqlrouter --bootstrap root@localhost:3310 ... Classic MySQL protocol connections to cluster 'devCluster': - Read/Write Connections: localhost:6446 - Read/Only Connections: localhost:6447 X protocol connections to cluster 'devCluster': - Read/Write Connections: localhost:6448 - Read/Only Connections: localhost:6449 # Example demonstrating --conf-base-port set to 0 $> mysqlrouter --bootstrap root@localhost:3310 --conf-base-port 0 ... Classic MySQL protocol connections to cluster 'devCluster': - Read/Write Connections: localhost:6446 - Read/Only Connections: localhost:6447 X protocol connections to cluster 'devCluster': - Read/Write Connections: localhost:64460 - Read/Only Connections: localhost:64470
-
命令行格式 --conf-bind-address address
类型 字符串 默认值 0.0.0.0
修改由
--bootstrap
在生成的 Router 配置文件中设置的bind_address
值。默认情况下,引导会为每个路由设置bind_address=0.0.0.0
,而此选项会更改该值。注意如果未定义
bind_address
,则默认的bind_address
值为 127.0.0.1。 -
命令行格式 --read-timeout num_seconds
类型 整数 默认值 30
到元数据服务器的读取操作被视为超时之前的秒数。
这会影响引导过程中的读取操作,还会通过在生成的
mysqlrouter.conf
中设置相关的read_timeout
选项来影响正常的 MySQL Router 操作。此选项是在
[DEFAULT]
命名空间下设置的。 -
命令行格式 --connect-timeout num_seconds
类型 整数 默认值 30
到元数据服务器的连接尝试被视为超时之前的秒数。
这会影响引导过程中的连接,还会通过在生成的
mysqlrouter.conf
中设置相关的connect_timeout
选项来影响正常的 MySQL Router 操作。有两个 connect_timeout 变体。元数据服务器变体是在
[DEFAULT]
命名空间下定义的,而 MySQL 服务器变体是在[routing]
命名空间下定义的。 -
--user {
,user_name
|user_id
}-u {
user_name
|user_id
}命令行格式 --user {user_name|user_id}, -u {user_name|user_id}
平台特定 Linux 类型 字符串 以具有名称
user_name
或数字用户 IDuser_id
的用户的身份运行 mysqlrouter。此处的 “用户” 指的是系统登录帐户,而不是授予表中列出的 MySQL 用户。在引导时,所有生成的文件都属于此用户,这也设置了相关的user
选项。此系统
user
在配置文件的[DEFAULT]
命名空间下定义。有关更多信息,请参阅user
选项的文档,该文档配置了--user
。如果以超级用户(uid=0)的身份执行引导,则需要
--user
选项。虽然不建议这样做,但可以通过将超级用户的名称作为参数传递来强制使用超级用户,例如 --user=root。此选项在 Windows 上不可用。
-
命令行格式 --name router_name
类型 字符串 默认值 系统
在初始引导时,为独立的 Router 实例指定一个符号名称。此选项是可选的,并与
--directory
一起使用。在创建多个实例时,名称必须是唯一的。 -
命令行格式 --force-password-validation
平台特定 Linux 默认情况下,MySQL Router 会跳过 MySQL Server 的 validate_password 机制,而是生成并使用基于已知 validate_password 默认设置的强密码。这是因为 validate_password 可以由用户配置,Router 无法考虑非同寻常的自定义设置。
此选项确保不会跳过为生成密码的密码验证(validate_password),默认情况下该选项处于禁用状态。
-
--password-retries
num_retries
命令行格式 --password-retries num_retries
类型 整数 默认值 20
最小值 1
最大值 10000
指定在使用密码验证规则创建用户帐户时,MySQL Router 应尝试生成密码的次数。默认值为 20。有效范围为 1 到 10000。
失败的最可能原因是由于自定义 validate_password 设置具有非同寻常的要求,例如 50 个字符的最小长度。在这种失败情况下,很可能是
--force-password-validation
设置为 true。 -
命令行格式 --force
强制对主机上的先前配置的路由器实例进行重新配置。
-
命令行格式 --ssl-mode mode
类型 字符串 默认值 PREFERRED
有效值 PREFERRED
DISABLED
REQUIRED
VERIFY_CA
VERIFY_IDENTITY
在引导和正常操作期间连接到元数据服务器时使用的 SSL 连接模式。类似于
--ssl-mode
(在 mysql 客户端中)。在引导过程中,Router 进行的所有到元数据服务器的连接都将使用指定的 SSL 选项。如果配置中未指定
ssl_mode
,它将默认设置为 PREFERRED。在正常操作期间,Router 启动后,其元数据缓存插件将读取和遵循所有配置的 SSL 设置。当设置为除默认值(PREFERRED)以外的值时,
ssl_mode
条目将插入生成的配置文件中的[metadata_cache]
部分。可用值为 DISABLED、PREFERRED、REQUIRED、VERIFY_CA 和 VERIFY_IDENTITY。PREFERRED 是默认值。与 mysql 客户端一样,此值不区分大小写。
配置文件等效项在
ssl_mode
中单独记录。 -
命令行格式 --ssl-cert file_path
类型 字符串 默认值 PEM 格式的 SSL 公钥证书文件的路径名。这用于在引导过程中促进客户端身份验证。这直接匹配并使用 MySQL 客户端的
--ssl-cert
选项的功能。与
--ssl-key
一样,此选项仅在使用 root 帐户的引导过程中使用。当使用 REQUIRE X509 创建 root 帐户时,此选项非常有用,因此以 root 身份登录需要客户端对其自身进行身份验证。 -
命令行格式 --ssl-key file_path
类型 字符串 SSL 私钥文件路径,采用 PEM 格式。用于在引导过程中进行客户端身份验证。它直接匹配并使用 MySQL 客户端的
--ssl-key
选项的功能。与
--ssl-cert
一样,此选项仅在使用 root 帐户的引导过程中使用。它在使用 REQUIRE X509 创建 root 帐户时很有用,因为以 root 用户身份登录需要客户端对其自身进行身份验证。 -
命令行格式 --ssl-cipher ciphers
类型 字符串 默认值 如果启用了 SSL,则允许的 SSL 密码的冒号分隔(“:”)列表。
-
命令行格式 --tls-version versions
类型 字符串 默认值 如果启用了 SSL,则请求的 TLS 版本的逗号分隔(“,”)列表。
-
命令行格式 --ssl-ca file_path
类型 字符串 默认值 用于验证服务器证书的 SSL CA 文件的路径。
-
命令行格式 --ssl-capath dir_path
类型 字符串 默认值 包含用于验证服务器证书的 SSL CA 文件的目录的路径。
-
命令行格式 --ssl-crl file_path
类型 字符串 默认值 用于验证服务器证书的 SSL CRL 文件的路径。
-
命令行格式 --ssl-crlpath dir_path
类型 字符串 默认值 包含用于验证服务器证书的 SSL CRL 文件的目录的路径。
-
命令行格式 --client-ssl-mode
类型 字符串 默认值 PREFERRED
有效值 PREFERRED
DISABLED
PASSTHROUGH
REQUIRED
在引导过程中以及 MySQL Router 与客户端连接时正常运行期间使用的 SSL 连接模式。
在引导过程中,Router 对客户端的所有连接都将使用指定的 SSL 选项。如果配置中未指定
client_ssl_mode
,则默认为PREFERRED
。配置文件等效项在
client_ssl_mode
中单独记录。 -
命令行格式 --client-ssl-cert file_path
类型 字符串 默认值 SSL 公钥证书文件路径,采用 PEM 格式。用于在引导过程中进行客户端身份验证。
与
--client-ssl-key
一样,此选项仅在使用 root 帐户的引导过程中使用。它在使用 REQUIRE X509 创建 root 帐户时很有用,因为以 root 用户身份登录需要客户端对其自身进行身份验证。 -
命令行格式 --client-ssl-curves
类型 字符串 默认为安全的 SSL 曲线列表。将此字符串格式化为冒号分隔的曲线名称列表。
-
命令行格式 --client-ssl-key file_path
类型 字符串 SSL 私钥文件路径,采用 PEM 格式。用于在引导过程中进行客户端身份验证。
与
--client-ssl-cert
一样,此选项仅在使用 root 帐户的引导过程中使用。它在使用 REQUIRE X509 创建 root 帐户时很有用,因为以 root 用户身份登录需要客户端对其自身进行身份验证。 -
命令行格式 --client-ssl-cipher
类型 字符串 如果启用了 SSL,则允许的 SSL 密码的冒号分隔(“:”)列表。
-
命令行格式 --client-ssl-dh-params=filepath
类型 字符串 DH 参数文件的名称。如果指定且不为空,则使用此文件中的 DH 参数而不是内部默认 DH 参数。将 DH 参数文件格式化为 PEM 格式。
-
命令行格式 --client-ssl-ca file_path
类型 字符串 默认值 用于验证服务器证书的 SSL CA 文件的路径。
-
命令行格式 --client-ssl-capath dir_path
类型 字符串 默认值 包含用于验证服务器证书的 SSL CA 文件的目录的路径。
-
命令行格式 --client-ssl-crl file_path
类型 字符串 默认值 用于验证服务器证书的 SSL CRL 文件的路径。
-
命令行格式 --client-ssl-crlpath dir_path
类型 字符串 默认值 包含用于验证服务器证书的 SSL CRL 文件的目录的路径。
-
命令行格式 --server-ssl-mode
类型 字符串 默认值 PREFERRED
有效值 AS_CLIENT
DISABLED
PREFERRED
REQUIRED
在引导过程中以及 MySQL Router 与服务器连接时正常运行期间使用的 SSL 连接模式。
在引导过程中,Router 对服务器的所有连接都将使用指定的 SSL 选项。如果配置中未指定
server_ssl_mode
,则默认为PREFERRED
。配置文件等效项在
server_ssl_mode
中单独记录。 -
命令行格式 --server-ssl-cipher
类型 字符串 如果启用了 SSL,则允许的 SSL 密码的冒号分隔(“:”)列表。
-
命令行格式 --server-ssl-ca file_path
类型 字符串 默认值 用于验证服务器证书的 SSL CA 文件的路径。
-
命令行格式 --server-ssl-capath dir_path
类型 字符串 默认值 包含用于验证服务器证书的 SSL CA 文件的目录的路径。
-
命令行格式 --server-ssl-crl file_path
类型 字符串 默认值 用于验证服务器证书的 SSL CRL 文件的路径。
-
命令行格式 --server-ssl-crlpath dir_path
类型 字符串 默认值 包含用于验证服务器证书的 SSL CRL 文件的目录的路径。
-
命令行格式 --server-ssl-curves
类型 字符串 默认为安全的 SSL 曲线列表。将此字符串格式化为冒号分隔的曲线名称列表。
-
命令行格式 --server-ssl-verify
类型 字符串 默认值 DISABLED
有效值 DISABLED
VERIFY_CA
VERIFY_IDENTITY
验证服务器向路由器提供的 SSL 证书
DISABLED
:如果服务器在握手过程中没有提供证书,则连接失败。VERIFY_CA
:如果服务器证书与 MySQL Router 信任的 CA 不匹配,则连接失败。VERIFY_IDENTITY
:如果服务器证书与 MySQL Router 信任的 CA 不匹配,或者服务器证书的主题与 MySQL Router 连接到的主机名或 IP 地址不匹配,则连接失败。
-
--config
,file_path
-c
file_path
命令行格式 --config file_path, -c file_path
用于提供要使用的配置文件的路径和文件名。如果您要使用位于默认位置以外的文件夹中的配置文件,请使用此选项。
与
--bootstrap
一起使用时,如果配置文件已存在,并且生成的配置文件内容与原始内容不同,则会将当前文件的副本保存为带 .bak 扩展名的文件。现有的 .bak 文件将被覆盖。 -
--extra-config
,file_path
-a
file_path
命令行格式 --extra-config file_path, -a file_path
用于提供可选的附加配置文件。如果您要将配置文件拆分为两个部分以进行测试、在同一台机器上运行应用程序的多个实例等,请使用此选项。
此配置文件将在主配置文件之后读取。如果有冲突(在多个配置文件中设置了选项),则使用最后加载的文件中的值。
-
命令行格式 --install-service [service_name]
平台特定 Windows 将 Router 安装为 Windows 服务,该服务在 Windows 启动时自动启动。服务名称默认为 MySQLRouter。
此安装过程不会验证通过
--config
传入的配置文件。此选项仅在 Windows 上可用。
-
命令行格式 --install-service-manual [service_name]
平台特定 Windows 将 MySQL Router 安装为 Windows 服务,可以手动启动。服务名称默认为 MySQLRouter。
此选项仅在 Windows 上可用。
-
命令行格式 --remove-service [service_name]
平台特定 Windows 删除 Router Windows 服务;服务名称默认为 MySQLRouter。
此选项仅在 Windows 上可用。
-
命令行格式 --service
平台特定 Windows 将路由器作为 Windows 服务启动。这是一个私有选项,表示仅供 Windows 服务在启动路由器作为服务时使用。
此选项仅在 Windows 上可用。
-
命令行格式 --update-credentials-section section_name
平台特定 Windows 此选项仅在 Windows 上可用,并引用其密码保管库。
-
命令行格式 --conf-target-cluster value
类型 字符串 有效值 current
primary
设置
target_cluster
元数据 MySQL 路由器选项。接受以下字符串之一-
current
: 将target_cluster
设置为包含正在针对其引导的节点的集群。它将其定义为集群的 UUID 值。如果这也是主节点,它不会像
primary
那样动态地跟随角色更改;而是保持静态。 primary
: 将target_cluster
设置为主集群,包括在运行时更改时。
另请参见
--config-target-cluster-by-name
,它将target_cluster
设置为特定静态集群名称。注意针对 ClusterSet 进行引导需要将
cluster_type
路由器配置选项设置为 gr。 -
-
命令行格式 --conf-set-option section_name[:optional_section_key].option=value
类型 字符串 在引导期间为生成的配置选项设置一个值;这可以为任何引导选项设置一个值,例如
$> mysqlrouter -B 127.0.0.1:5000 \ --directory=dir1 \ --conf-set-option=logger.level=debug \ --conf-set-option=routing:test_rw.max_connect_errors=0 \ --conf-set-option=routing:test_ro.max_connect_errors=0
这些命令通过将它们定义为这样来更改这些特定选项的默认值
[logger] level=debug [routing:test_rw] ... max_connect_errors=0 ... [routing:test_ro] ... max_connect_errors=0 ...
--conf-set-option
定义优先于特定参数来设置特定值。例如,如果在引导时同时指定了--connect-timeout=X
和--conf-set-option=DEFAULT.connect_timeout=Y
,则connect_timeout
在生成的配置文件中设置为 Y。 -
命令行格式 --conf-target-cluster-by-name clusterName
类型 字符串 将
target_cluster
元数据 MySQL 路由器选项设置为特定集群名称。或者,使用
--conf-target-cluster
来分配动态集群类型,例如主节点。 -
--remove-credentials-section
section_name
命令行格式 --remove-credentials-section section_name
平台特定 Windows 删除给定部分的凭据。
此选项仅在 Windows 上可用,并引用其密码保管库。
-
命令行格式 --clear-all-credentials
平台特定 Windows 通过删除存储在其中的所有凭据来清除密码保管库。
此选项仅在 Windows 上可用,并引用其密码保管库。
-
命令行格式 --disable-rest
默认情况下,在引导时将 MySQL 路由器 REST API Web 服务功能的配置详细信息添加到生成的
mysqlrouter.conf
文件中;此参数表示不会添加这些详细信息。这不会禁用 REST API 功能,因为可以稍后手动配置 REST API 功能(以启用它)。 -
命令行格式 --https-port value
类型 整数 默认值 8443
最小值 1
最大值 65535
可选地在引导时为生成的
mysqlrouter.conf
中的 [http_server] 部分定义 HTTP 服务器的port
,用于 MySQL 路由器 REST API。它默认为 8443。不检查端口的可用性。