MySQL服务读取参数文件my.cnf的规律研究探索

 在MySQL中,它是按什么顺序或规律去读取my.cnf配置文件的呢?其实只要你花一点功夫,实验测试一下就能弄清楚,下面的实验环境为5.7.21 MySQL Community Server。其它版本如有不同,请以实际情况为准。

 

其实,MySQL是按照下面这个顺序来读取my.cnf:

 

    1: /etc/my.cnf

    2: /etc/mysql/my.cnf

    3: /usr/etc/my.cnf

    4: ~/.my.cnf

 

也就是说首先它会找/etc/my.cnf 这个文件, 如果这个文件不存在,那么它接下来去找/etc/mysql/my.cnf这个文件,依此类推(这个实验很简单,在此略过,不浪费篇幅),如果最后一个文件~/.my.cnf 也不存在,那么会怎么样呢?

[root@gettestlnx02 ~]# mysql --help | grep my.cnf
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 
[root@gettestlnx02 ~]# ls /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
ls: cannot access /etc/mysql/my.cnf: No such file or directory
ls: cannot access /usr/etc/my.cnf: No such file or directory
ls: cannot access /root/.my.cnf: No such file or directory
/etc/my.cnf
[root@gettestlnx02 ~]# 

 

如上所示,其实MySQL安装完成后,只生成了/etc/my.cnf这个配置文件。其它路径的my.cnf文件是不存在的。我们先来测试一下,将配置文件移走。在这之前,我们先查看一下log_error的位置。如下所示:

 

 

mysql> show variables like '%log_error%';
+---------------------+---------------------+
| Variable_name       | Value               |
+---------------------+---------------------+
| binlog_error_action | ABORT_SERVER        |
| log_error           | /var/log/mysqld.log |
| log_error_verbosity | 3                   |
+---------------------+---------------------+
3 rows in set (0.00 sec)
 
mysql> exit
Bye

 

 

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信