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

4.1 配置文件语法

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

注意

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

注释

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

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

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

[section name:optional section key]

option = value
option = value
option = value

配置文件节标题以开括号 ([) 开头,以闭括号 (]) 结束。在行中可以有前导和尾部空格字符,这些字符将被忽略,但在节括号内不允许有空格。

括号内的节标题由一个节名称和一个可选的节键组成,它们之间用冒号 (:) 分隔。节名称和节键的组合对于一个配置来说是唯一的。

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

节类似于命名空间。例如,user 选项的含义取决于其关联的节。[DEFAULT] 节中的user 指的是 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 节,“使用命令行定义选项”