mysql 配置文件格式
配置文件语法格式
以下是对配置文件语法的描述:
在运行 MySQL 程序时,可以在选项文件中使用与在命令行中给出的任何长选项相同的选项。
要获取程序的可用选项列表,请使用 --help 选项运行它(对于 mysqld,请使用 --verbose 和 --help)。
在配置文件中指定选项的语法类似于命令行语法。只不过在配置文件中,需要省略选项名称前面的破折号,并且每行只指定一个选项。
配置文件中的空行会被忽略。非空行可以采用以下任意形式:
#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 版本号时使用:
在配置选项组时,应该先列出较一般的选项组,然后列出更具体的选项组。
例如,[client] 组更通用,因为它由所有客户端程序读取,而 [mysqldump] 组仅由 mysqldump 读取。后面指定的选项会覆盖先前指定的选项,因此按照 [client] [mysqldump] 的顺序排列选项组可以使 mysqldump 特定的选项覆盖 [client] 选项。
[client] 组使你能够指定适用于所有客户端的选项。因此请确保不要将一个选项放在 [client] 组中,除非所有你使用的客户端程序都识别它。
转义字符
在配置文件中,反斜杠 ‘\’ 为转义字符。
对于 Windows 路径而言,转义字符十分有用,因为 Windows 会使用反斜杠 ‘\’ 作为分隔符。假设想在配置文件中指定 C:\Program Files\MySQL\MySQL Server 5.7 的基目录。有几种方式可以做到:
第一种配置方式之所以有效是因为,配置文件中的转义规则由以下两条组成:
如果转义字符后跟了一个有效转义序列的字符,那么会转换成特定的字符。 例如 \b,\t,\n,\r , \\, 和 \s 分别会被转换成退格、制表、换行、回车、反斜杠和空格
如果转义字符后跟了一个无效转义序列的字符,则保持不变。 例如 \S 依然会是 \S,\P 依然是 \P,\M 依然是 \M
Include
可以在一个配置文件中使用 !include 指令包含另一个配置文件,或者使用 !includedir 指令包含一个文件夹下的所有配置文件。
例如,如果想在当前配置文件中包含一个名为 /home/mydir/myopt.cnf 的配置文件,可以使用如下的配置:
如果想要包含目录下所有的配置文件,可以使用如下的配置:
MySQL 并不保证目录(!includedir)下各配置文件的读取顺序。
在类 Unix 的系统上,MySQL 只会将后缀名为 .cnf 的文件作为配置文件。
在 Windows 上,MySQL除了支持 .cnf 后缀的配置文件外,还支持 .ini 后缀的配置文件。
最后更新于