mysql 配置文件格式

配置文件语法格式

以下是对配置文件语法的描述:

  1. 在运行 MySQL 程序时,可以在选项文件中使用与在命令行中给出的任何长选项相同的选项

    要获取程序的可用选项列表,请使用 --help 选项运行它(对于 mysqld,请使用 --verbose 和 --help)。

  2. 在配置文件中指定选项的语法类似于命令行语法。只不过在配置文件中,需要省略选项名称前面的破折号,并且每行只指定一个选项

  3. 配置文件中的空行会被忽略。非空行可以采用以下任意形式:

    • #comment ;comment

      • 注释行以井号(#)或分号(;)作为开头。

      • 使用 # 号注释也可以在行中间开始。

    • [group]

      • group 是选项的程序或组的名称

      • 在 group 行之后设置的所有选项属于该组,直到到达选项文件的末尾或给出另一个 group 为止。

      • 选项组名称对大小写不敏感。

    • opt_name

      • 这相当于在命令行上使用 --opt_name

    • opt_name=value

      • 这相当于在命令行上使用 --opt_name=value

      • value 值可以用单引号或双引号括起来,如果值中包含 # 注释字符,则这样做是有用的。

如果选项组名称(group)与程序名称相同,则该组中的选项仅适用于该程序

  • [mysqld] [mysql] 组分别适用于 mysqld 服务器和 mysql 客户端程序。

  • [client] 选项组由 MySQL 的所有客户端程序读取(除了 mysqld)。

  • 要创建仅由特定版本的 mysqld 服务器读取的选项组,请使用名称为 [mysqld-5.6]、[mysqld-5.7]这样的组。 下面的组表示 sql_mode 设置仅应在 MySQL 服务器为 5.7.x 版本号时使用:

    [mysqld-5.7] 
    sql_mode=TRADITIONAL

在配置选项组时,应该先列出较一般的选项组,然后列出更具体的选项组。

例如,[client] 组更通用,因为它由所有客户端程序读取,而 [mysqldump] 组仅由 mysqldump 读取。后面指定的选项会覆盖先前指定的选项,因此按照 [client] [mysqldump] 的顺序排列选项组可以使 mysqldump 特定的选项覆盖 [client] 选项。

[client] 组使你能够指定适用于所有客户端的选项。因此请确保不要将一个选项放在 [client] 组中,除非所有你使用的客户端程序都识别它。

转义字符

在配置文件中,反斜杠 ‘\’ 为转义字符。

对于 Windows 路径而言,转义字符十分有用,因为 Windows 会使用反斜杠 ‘\’ 作为分隔符。假设想在配置文件中指定 C:\Program Files\MySQL\MySQL Server 5.7 的基目录。有几种方式可以做到:

basedir="C:\Program Files\MySQL\MySQL Server 5.7"
basedir="C:\\Program Files\\MySQL\\MySQL Server 5.7"
basedir="C:/Program Files/MySQL/MySQL Server 5.7"
basedir=C:\\Program\sFiles\\MySQL\\MySQL\sServer\s5.7

第一种配置方式之所以有效是因为,配置文件中的转义规则由以下两条组成:

  1. 如果转义字符后跟了一个有效转义序列的字符,那么会转换成特定的字符。 例如 \b,\t,\n,\r , \\, 和 \s 分别会被转换成退格、制表、换行、回车、反斜杠和空格

  2. 如果转义字符后跟了一个无效转义序列的字符,则保持不变。 例如 \S 依然会是 \S,\P 依然是 \P,\M 依然是 \M

Include

可以在一个配置文件中使用 !include 指令包含另一个配置文件,或者使用 !includedir 指令包含一个文件夹下的所有配置文件

例如,如果想在当前配置文件中包含一个名为 /home/mydir/myopt.cnf 的配置文件,可以使用如下的配置:

!include /home/mydir/myopt.cnf

如果想要包含目录下所有的配置文件,可以使用如下的配置:

!includedir /home/mydir

MySQL 并不保证目录(!includedir)下各配置文件的读取顺序。

  • 在类 Unix 的系统上,MySQL 只会将后缀名为 .cnf 的文件作为配置文件。

  • Windows 上,MySQL除了支持 .cnf 后缀的配置文件外,还支持 .ini 后缀的配置文件。

最后更新于