1.数据库配置文件
配置文件的读取顺序
1 2 3 4 |
/etc/my.cnf /etc/mysql/my.cnf $basedir/my.cnf ~/.my.cnf |
配置文件生效顺序
1 2 3 4 |
~/.my.cnf $basedir/my.cnf /etc/mysql/my.cnf /etc/my.cnf |
2.执行参数优先级
socket文件指定位置
1 2 3 4 5 6 7 8 9 10 11 |
#cmake: socket=/application/mysql/tmp/mysql.sock #命令行: --socket=/tmp/mysql.sock #配置文件: /etc/my.cnf 中[mysqld]标签下:socket=/opt/mysql.sock #default参数: --defaults-file=/tmp/a.txt 配置文件中[mysqld]标签下:socket=/tmp/test.sock |
测试优先级
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#1.启动MySQL,查看sock文件位置 [root@db02 ~]# mysqld_safe --defaults-file=/tmp/a.txt --socket=/tmp/mysql.sock & [root@db02 ~]# ll /tmp/ srwxrwxrwx 1 mysql mysql 0 Oct 22 18:58 mysql.sock #2.启动MySQL,查看sock文件位置 [root@db02 ~]# mysqld_safe --defaults-file=/tmp/a.txt & [root@db02 ~]# ll /tmp/ srwxrwxrwx 1 mysql mysql 0 Oct 22 19:01 test.sock #如果设置--defaults-file,那么MySQL启动时只读取指定的配置文件 #3.启动MySQL,查看sock文件位置 [root@db02 ~]# mysqld_safe & [root@db02 ~]# ll /opt/ srwxrwxrwx 1 mysql mysql 0 Oct 22 19:03 mysql.sock |
优先级总结
1 2 |
#优先级排序 命令行 > --defaults-file参数指定配置 > ~/.my.cnf > $basedir/my.cnf > /etc/mysql/my.cnf > /etc/my.cnf > 初始化配置 > cmake |
3.配置文件作用
影响客户端的连接
1 2 3 4 5 |
[root@db02 ~]# vim /etc/my.cnf #配置文件添加连接数据库信息的配置 [mysql] user=root password=123456 |
影响服务端的启动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#修改server_id [root@db02 ~]# vim /etc/my.cnf [mysqld] server_id=2 #查看配置没有生效 [root@db02 ~]# mysql -e "show variables like 'server_id'" +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 1 | +---------------+-------+ #重启数据库后,修改的服务端配置才会生效 [root@db02 ~]# systemctl restart mysqld [root@db02 ~]# mysql -e "show variables like 'server_id'" +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 2 | +---------------+-------+ |
总结
1 2 3 4 5 6 7 8 9 10 11 12 |
1.客户端配置受配置文件影响 2.客户端配置修改后不需要重启服务 [mysql] 或者 [client] 3.服务端配置修改后需要重启服务后生效 [mysqld] 或者 [server] 4.常见配置 [root@db02 ~]# vim /etc/my.cnf [mysqld] server_id=2 socket=/tmp/mysql.sock [mysql] socket=/tmp/mysql.sock |