一直没仔细了解过mysql的配置文件加载策略,然后看了下文档。 https://dev.mysql.com/doc/refman/5.7/en/option-files.html 在windows上和linux上加载的顺序分别是从上到下: windows读取顺序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
1.%WINDIR%\my.ini, %WINDIR%\my.cnf 2.C:\my.ini, C:\my.cnf 3.BASEDIR\my.ini, BASEDIR\my.cnf 4.defaults-extra-file 用指定的文件 --defaults-extra-file(如果有) 5.%APPDATA%\MySQL\.mylogin.cnf %WINDIR%代表Windows目录的位置C:\WINDOWS,用下面的命令可以从WINDIR环境变量的值确定其确切的位置 C:\> echo %WINDIR% %APPDATA%表示Windows应用程序数据目录的值。使用以下命令从APPDATA环境变量的值确定其确切位置 C:\> echo %APPDATA% BASEDIR表示MySQL基本安装目录 |
在Unix和类似Unix的系统上读取顺序
1 2 3 4 5 6 7 8 9 10 11 12 |
1./etc/my.cnf 2./etc/mysql/my.cnf 3.SYSCONFDIR/my.cnf 4.$MYSQL_HOME/my.cnf 特定于服务器的选项(仅适用于服务器) 5.defaults-extra-file 用指定的文件 --defaults-extra-file(如果有) 6.~/.my.cnf 7.~/.mylogin.cnf 用户特定的登录路径选项(仅客户端) “~”表示用户的家目录($HOME的值) SYSCONFDIR表示在构建MySQL时SYSCONFDIR 使用CMake选项指定的目录。默认情况下,这是etc位于内置安装目录下的目录。 MYSQL_HOME是一个环境变量,其中包含服务器特定my.cnf文件所在目录的路径。如果 MYSQL_HOME未设置,并且使用mysqld_safe程序启动服务器,则 mysqld_safe将其设置 BASEDIR为MySQL基本安装目录。 |
如果某选项在多个配置文件中都存在,那么后面的配置会覆盖之前的,除非使用 -defaults-file 指定文件 可以用下面这个命令查看mysql加载…