在MySQL安装目录下的bin目录中的各种可执行文件,不论是服务器相关的程序(比如mysqld、mysqld_safe)还是客户端相关的程序(比如mysql、mysqladmin),在启动的时候基本都可以指定启动参数。这些启动参数可以放在命令行中指定,也可以把它们放在配置文件中指定。
1 | mysqld --skip-networking 禁止客户端使用TCP/IP网络进行通信 |
1 | mysql -h -u -p 客户端 |
配置文件
MySQL程序在启动时会寻找多个路径下的配置文件,这些路径有的是固定的,有的是可以在命令行指定的。根据操作系统的不同,配置文件的路径也有所不同。
%WINDIR%是机器上的Windows目录,通常是C:\WINDOWS,可以使用echo %WINDIR%查看
BASEDIR指的是MySQL安装目录
第四个路径指的是我们在启动程序时可以通过指定default-extra-file参数来额外配置文件路径
1
mysqld --defaults-extra-file=C:\Users\xiaohaizi\my_extra_file.txt
- MYSQL_HOME是一个环境变量,该变量的值是我们自己设置的,我们想设置就设置,不想设置就不设置。该变量的值代表一个路径,我们可以在该路径下创建一个my.cnf配置文件,那么这个配置文件中只能放置关于启动服务器程序相关的选项(言外之意就是其他的配置文件既能存放服务器相关的选项也能存放客户端相关的选项,.mylogin.cnf除外,它只能存放客户端相关的一些选项)
- defaults-extra-file的含义与Windows中的一样。
在mysqld_safe调用mysqld时,会把它处理不了的这个skip-networking选项交给mysqld处理。
配置文件的内容
[server]
(具体的启动选项…)
[mysqld]
(具体的启动选项…)
[mysqld_safe]
(具体的启动选项…)
[client]
(具体的启动选项…)
[mysql]
(具体的启动选项…)
[mysqladmin]
(具体的启动选项…)
不同的启动命令读取配置文件的不同的组
配置文件的优先级
如果我们在多个配置文件中设置了相同的启动选项,那以最后一个配置文件中的为准
同一个配置文件中多个组的优先级
比如mysqld命令启动服务端程序,可以访问配置文件中的[mysqld]、[server]等,那么将以最后一个出现的组中的启动选项为准
default-file使用
如果我们不想让MySQL到默认的路径下搜索配置文件(就是上表中列出的那些),可以在命令行指定defaults-file选项,比如这样(以UNIX系统为例):
1 | mysqld --defaults-file=/tmp/myconfig.txt |
如果同一个启动选项既出现在配置文件中,又出现在命令行中,以命令行为准