选项名称和值中的前导和尾随空格会自动删除。
您可以在选项值中使用转义序列
\b
,
\t
,
\n
,
\r
,
\\
和
\s
来表示退格符、制表符、换行符、回车符、反斜杠和空格字符。在选项文件中,这些转义规则适用:
后跟有效转义序列字符的反斜杠将转换为序列表示的字符。例如,
\s
转换为空格。
没有跟在有效转义序列字符后的反斜杠保持不变。例如,
\S
原样保留。
前面的规则意味着文字反斜杠可以作为
\\
, 或者就
\
好像它后面没有跟一个有效的转义序列字符一样。
选项文件中的转义序列规则与 SQL 语句中字符串文字中的转义序列规则略有不同。在后一种情况下,如果
“
x
”
不是有效的转义序列字符,
“
”
而不是
第 9.1.1 节,“字符串文字”
。
\
x
x
\
x
选项文件值的转义规则尤其适用于
\
用作路径名分隔符的 Windows 路径名。Windows 路径名中的分隔符必须像
\\
其后跟转义序列字符一样书写。它可以写成
\\
或
\
不是。或者,
/
可以在 Windows 路径名中使用并被视为
\
. 假设您要
C:\Program Files\MySQL\MySQL Server
8.0
在选项文件中指定一个基本目录。这可以通过多种方式完成。一些例子:
basedir="C:\Program Files\MySQL\MySQL Server 8.0"
basedir="C:\\Program Files\\MySQL\\MySQL Server 8.0"
basedir="C:/Program Files/MySQL/MySQL Server 8.0"
basedir=C:\\Program\sFiles\\MySQL\\MySQL\sServer\s8.0
如果选项组名称与程序名称相同,则组中的选项专门应用于该程序。例如,
[mysqld]
和
[mysql]
组分别适用于
mysqld
服务器和
mysql
客户端程序。
选项组由MySQL 发行版中提供
的
[client]
所有客户端程序读取(但
不由
mysqld
读取)。要了解使用 C API 的第三方客户端程序如何使用选项文件,请参阅
mysql_options()
中的 C API 文档。
该
[client]
组使您能够指定适用于所有客户端的选项。例如,
[client]
是用于指定连接到服务器的密码的适当组。(但要确保选项文件只能由您自己访问,这样其他人就无法发现您的密码。)确保不要将选项放在
[client]
组中,除非您使用的
所有
客户端程序都可以识别它。如果您尝试运行不理解该选项的程序,则会在显示错误消息后退出。
先列出更通用的选项组,然后再列出更具体的选项组。例如,一个
[client]
组更通用,因为它被所有客户端程序读取,而一个
[mysqldump]
组只被
mysqldump
读取。后面指定的选项会覆盖前面指定的选项,因此将选项组按顺序排列
[client]
,
[mysqldump]
使
mysqldump
特定的选项能够覆盖
[client]
选项。
这是一个典型的全局选项文件:
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
socket=/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=128M
[mysqldump]
quick
这是一个典型的用户选项文件:
[client]
# The following password is sent to all standard MySQL clients
password="my password"
[mysql]
no-auto-rehash
connect_timeout=2
要创建仅供来自特定 MySQL 版本系列的
mysqld
服务器读取的选项组,请使用名称为
[mysqld-5.7]
、
[mysqld-8.0]
等的组。以下组表示该
sql_mode
设置只能由版本号为 8.0.x 的 MySQL 服务器使用:
[mysqld-8.0]
sql_mode=TRADITIONAL
可以
!include
在选项文件中使用指令来包含其他选项文件并
!includedir
在特定目录中搜索选项文件。例如,要包含
/home/mydir/myopt.cnf
文件,请使用以下指令:
!include /home/mydir/myopt.cnf
要搜索
/home/mydir
目录并读取在那里找到的选项文件,请使用此指令:
!includedir /home/mydir
MySQL 不保证目录中选项文件的读取顺序。
[mysqld]
组 in
/home/mydir/myopt.cnf
。如果文件由
mysqladmin
处理,则仅使用
[mysqladmin]
组。如果文件由任何其他程序处理,则不
/home/mydir/myopt.cnf
使用任何选项。
除了读取指定目录中的所有选项文件外,该
!includedir
指令的处理方式类似。
如果选项文件包含
!include
或
!includedir
指令,则只要处理选项文件,就会处理由这些指令命名的文件,无论它们出现在文件中的什么位置。
为了使包含指令起作用,文件路径不应在引号内指定,并且不应包含转义序列。例如,
my.ini
读取选项文件
中提供的以下语句
myopts.ini
:
!include C:/ProgramData/MySQL/MySQL Server/myopts.ini
!include C:\ProgramData\MySQL\MySQL Server\myopts.ini
!include C:\\ProgramData\\MySQL\\MySQL Server\\myopts.ini
在 Windows 上,如果是文件中的最后一行,请确保在末尾附加一个换行符;否则,该行将被忽略。
!include
/path/to/extra.ini