使用选项文件
大部分
MySql
程序可以从选项文件中读取启动选项,这些选项文件提供了一个便利的途径来指定常用的选项,这样就不必每次运行程序时在命令行上进行输入MySql
程序指定--no-defaults
选项,将仅读取.mylogin.cnf
,而不会读取其他选项文件
选项文件的优先级
- 在
Windows
系统下,mysql
程序读取的选项文件的顺序如下表(先列出的文件先读取,后读取的文件具有更高的优先级)
文件名 | 用途 |
---|---|
%WINDIR%\my.ini %WINDIR%\my.cnf
|
全局选项 |
C:\my.ini C:\my.cnf
|
全局选项 |
BASEDIR\my.ini BASEDIR\my.cnf
|
全局选项 |
defaults-extra-file |
The file specified with --defaults-extra-file , if any |
%APPDATA%\MySQL\.mylogin.cnf |
Login path options (clients only) |
DATADIR\mysqld-auto.cnf |
System variables persisted with SET PERSIST or SET PERSIST_ONLY (server only) |
%WINDIR%
路径为C:\Windows
%APPDATA%
路径为C:\Users\szn\AppData\Roaming
BASEDIR
与DATADIR
在mysql
安装路径下的my.ini
文件中进行配置
选项文件的语法
以下描述的选项文件的语法不适用于.mylogin.cnf
及mysqld-auto.cnf
选项文件中指定选项的语法与命令行语法类似,但是在选项文件中选项名称前面的
--
需要被省略,并且每行只能指定一个选项选项文件中的空行将被忽略
行开头与行结尾的空格将被忽略
-
#comment,;comment
- 注释行以
#
或者;
开头 -
#
注释可以从行的中间开始
- 注释行以
-
[group]
group
是要设置的选项的组或者程序的名称直到遇见另一个
group
前,任何设定行都应用于当前group
如果
group
名与程序名相同,则组中的选项是专门应用于该程序的,比如[mysqld]
应用于mysqld
服务,[mysql]
应用于mysql
客户端程序-
[client]
选项应用于所有的client programs(不包括 mysqld 服务)
[client] password=123456 [mysql] password=1234567
-
[mysql]
中的password
将覆盖[client]
中的password - 若上述
[client]
组和[mysql]
组的顺序进行颠倒,那么将是[client]
组中的password
覆盖[mysql]
组中的password
-
[mysqld-5.7]
、[mysqld-8.0]
分别作用于对应版本的mysqld
服务
-
opt_name
- 等价于命令行中的
--opt_name
- 等价于命令行中的
-
opt_name=value
- 等价于命令行中的
--opt_name=value
- 在选项文件中,
=
两边支持空格,这在命令行中是不允许的 - 可以将值包含在
'
或者"
中,当值包含#
,这个方法就非常有用
- 等价于命令行中的
支持
!include
语法进行包含其他文件,细节不进行考究