MySQL 路由器 9.0  /  配置  /  配置文件语法

4.1 配置文件语法

配置文件格式类似于传统的 INI 文件格式,包含节和选项,但有一些额外的扩展。

注意

正斜杠和反斜杠都支持。反斜杠会被无条件复制,因为它们不会转义字符。

注释

配置文件可以包含注释行。注释行以井号 (#) 或分号 (;) 开头,并持续到行尾。不支持尾随注释。

每个配置文件都包含一系列 配置节,其中每个节包含一系列 配置选项。每个配置选项都有一个名称和值。例如

[section name]
option = value
option = value
option = value

[section name:optional section key]

option = value
option = value
option = value

配置文件节标题以左括号 ([) 开头,以右括号 (]) 结尾。该行上可以有前导和尾随空格字符,这些字符将被忽略,但在节括号内不能有空格。

括号内的节标题包含一个 节名称 和一个可选的 节键,该键用冒号 (:) 与节标题分隔。节名称和节键的组合对于配置是唯一的。

节名称和节键由一个或多个字母、数字或下划线 (_) 组成。节名称或节键中不允许使用其他字符。

节类似于命名空间。例如,user 选项的含义取决于它关联的节。user[DEFAULT] 节中指的是运行 MySQL 路由器的系统用户,这也由 --user 命令行选项控制。与此无关的是在 [metadata_cache] 节中定义 user,它指的是访问 MySQL 服务器元数据的 MySQL 用户。

默认节

特殊节名称 DEFAULT(不区分大小写)用于选项的默认值。在节中找不到的选项将在默认节中查找。默认节不接受节键。

选项

在节的开始标题之后,可以有零个或多个 选项行,其中每个选项行的形式为

name = value

选项名称或选项值上的任何前导或尾随空白字符在处理之前都会被删除。选项名称不区分大小写。不支持尾随注释,因此在本例中,选项 routing_strategy 的值为 round-robin # Circles back to first server,并在启动路由器时生成错误。

[routing:round-robin]
# Trailing comments are not supported so the following is incorrect
routing_strategy=round-robin # Circles back to first server

变量插值

选项值支持使用花括号 {} 中给出的选项名称进行(变量插值)。插值是在检索选项值时完成的,而不是在从配置文件中读取它时完成的。如果没有定义变量,则不进行任何替换,并且按字面意思读取选项值。

考虑以下示例配置文件

[DEFAULT]
prefix = /usr/

[sample]
bin = {prefix}bin/{name}
lib = {prefix}lib/{name}
name = magic
directory = C:\foo\bar\{3a339172-6898-11e6-8540-9f7b235afb23}

这里 bin 的值为 "/usr/bin/magic",lib 的值为 "/usr/lib/magic",directory 的值为 "C:\foo\bar\{3a339172-6898-11e6-8540-9f7b235afb23}",因为未定义名为 "{3a339172-6898-11e6-8540-9f7b235afb23}" 的变量。

预定义变量

MySQL 路由器定义了配置文件可用的预定义变量。变量使用花括号,例如 {program} 表示 program 预定义变量。

表 4.1 预定义变量

名称 描述
program 程序的名称,通常为 mysqlrouter
origin 二进制文件所在目录的路径
logging_folder 日志文件文件夹的路径
plugin_folder 插件文件夹的路径
runtime_folder 运行时数据文件夹的路径
config_folder 配置文件文件夹的路径

命令行相关详细信息

有关命令行语法相关信息和选项,请参阅 第 4.3.1 节,“使用命令行定义选项”