MySQL中有多个位置可以配置my.cnf来存放配置内容,这篇文章以具体的例子来说明不同位置的配置文件的优先顺序。
环境准备
环境准备可参看:
注:已有MySQL的可以跳过此步骤。
liumiaocn:~ liumiao$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14
BuildVersion: 18A391
liumiaocn:~ liumiao$
liumiaocn:~ liumiao$ mysql --version
mysql Ver 8.0.11 for osx10.13 on x86_64 (Homebrew)
liumiaocn:~ liumiao$
MySQL的配置文件
序号 | 目录 | 文件名 | 优先顺序说明 |
---|---|---|---|
1 | /usr/local/mysql/ | my.cnf | 优先度最低(验证发现无法起效) |
2 | /etc/ | my.cnf | 优先度比1高 |
3 | /etc/mysql/ | my.cnf | 优先度比2高 |
4 | ~/ | .my.cnf | 优先度比3高 |
5 | 指定目录 | 指定文件名称 | defalts-file选项指定名称,优先度比4高 |
6 | - | -命令行参数方式传入 | 优先度比5高 |
事前准备
将上述1-4的配置文件中的用户名全部设定为root,密码全部设定错误,不输入用户名和密码方式的情况下无法登录到mysql控制台。
liumiaocn:~ liumiao$ for f in /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf; do echo "[$f]"; cat $f; echo; done
[/etc/my.cnf]
[client]
user=root
password=root123
[/etc/mysql/my.cnf]
[client]