mysql配置文件生效顺序
安装完数据库 除了将my.cnf放在/etc/下放在其他地方也是可以的
1 | cp /usr/share/mysql/my-default .cnf /etc/my .cnf |
今天就看一下这些my.cnf是怎么生效的
看一下生效的my.cnf有哪些
1 2 3 | [root@Check2 ~] # mysql --help | grep -E '*.cnf' order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/my .cnf /etc/mysql/my .cnf /usr/etc/my .cnf ~/.my.cnf |
可以看到路径为
1 2 3 4 | /etc/my .cnf /etc/mysql/my .cnf /usr/etc/my .cnf ~/.my.cnf |
在上面路径中都cp一份my.cnf
其中在[mysqld]下添加port不同
1 2 3 4 | /etc/my .cnf #port = 3307 /etc/mysql/my .cnf #port = 3308 /usr/etc/my .cnf #port = 3309 ~/.my.cnf #port = 3310 |
配置好如下:
1 2 3 4 5 6 7 8 | [root@Check2 ~] # cat /etc/my.cnf | grep '^port' port = 3307 [root@Check2 ~] # cat /etc/mysql/my.cnf | grep '^port' port = 3308 [root@Check2 ~] # cat /usr/etc/my.cnf | grep '^port' port = 3309 [root@Check2 ~] # cat ~/.my.cnf | grep '^port' port = 3310 |
重启数据库看那个my.cnf生效
1 2 3 4 5 | [root@Check2 ~] # /etc/init.d/mysql restart Shutting down MySQL.. SUCCESS! Starting MySQL. SUCCESS! [root@Check2 ~] # netstat -anpt | grep mysqld tcp 0 0 0.0.0.0:3310 0.0.0.0:* LISTEN 2696 /mysqld |
可以看到先生效的是~/.my.cnf
将这个文件删除,在看下其他的
1 2 3 4 5 6 7 | [root@Check2 ~] # cd ~ [root@Check2 ~] # rm -rf .my.cnf [root@Check2 ~] # /etc/init.d/mysql restart Shutting down MySQL.. SUCCESS! Starting MySQL. SUCCESS! [root@Check2 ~] # netstat -anpt | grep mysqld tcp 0 0 0.0.0.0:3309 0.0.0.0:* LISTEN 2977 /mysqld |
继续
1 2 3 4 5 6 | [root@Check2 ~] # rm -rf /usr/etc/my.cnf [root@Check2 ~] # /etc/init.d/mysql restart Shutting down MySQL.. SUCCESS! Starting MySQL. SUCCESS! [root@Check2 ~] # netstat -anpt | grep mysqld tcp 0 0 0.0.0.0:3308 0.0.0.0:* LISTEN 3221 /mysqld |
现在可以看出生效顺序是反着的
1 2 3 4 | 1、~/.my.cnf 2、 /usr/etc/my .cnf 3、 /etc/mysql/my .cnf 4、 /etc/my .cnf |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步