MySQL路由器8.0  / 第 4 章 配置  /  4.1 配置文件语法

4.1 配置文件语法

配置文件格式类似于带有部分和选项的传统 INI 文件格式,但有一些额外的扩展名。

笔记

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

注释

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

部分

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

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

[section name:optional section key]

option = value
option = value
option = value

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

括号内的节头由 节名和可选的 节键组成,节键与节头之间用冒号 ( :) 分隔。部分名称和部分键的组合对于配置是唯一的。

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

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

默认部分

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

选项

在一个部分的起始标题之后,可以有零个或多个选项行的序列,其中每个选项行的形式如下:

name = value

在处理之前,选项名称或选项值上的任何前导或尾随空白字符都将被删除。选项名称不区分大小写。不支持尾随注释,因此在此示例中,该选项mode的值为“read-only #Read only mode”,因此在启动路由器时会产生错误。

[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 Router 定义了可用于配置文件的预定义变量。变量使用大括号,例如 {program}用于program 预定义变量。

表 4.1 预定义变量

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

命令行相关详细信息

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