Mysql 5.6 与5.7 密码权限问题
Mysql 5.6 与5.7 密码权限问题
在 5.6 和 5.7 中,Mysql 加强了密码的使用。
- Mysql第一次启动的时候,会初始化一个随机的复杂密码,保存在
/var/log/mysqld.log
- 不再接受简单密码。即复杂密码为:
大小写、数字、符号
的组合。 - 在命令行中,不能直接使用
mysql -u$USER -p$PASSWORD
的方式了
在 bash script 中使用 mysql
如何在 bash script 中使用 mysql 密码 - stackoverflow.com 讨论
使用 client 配置
在 /etc/my.cnf
中配置 [client]
区块
或者,使用 --default-extra-file=/path/to/config.cnf
|
|
不过 --default-extra-file=/path/to/config.cnf
必须为命令行的第一个参数,否则会报错。例如,mysqldump: unknown variable 'defaults-extra-file
使用 mysql_config_editor 和 login-path
在 5.6.x 中,避免 WARNING 消息的方式是使用 mysql_confg_editor
工具。
|
|
前置 MYSQL_PWD
设置 MYSQL_PWD 为环境变量,则命令行的时候,不用在指定密码
|
|
另外,在不 export MYSQL_PWD 的情况下,可以将 MYSQL_PWD 放在命令行最前面,也是可行的。
|
|
修改初始密码
之前提到了, Mysql 在初次启动的时候会生成一个随机密码,保存在 /var/log/mysqld.log
中。
首次进入后,不修改 root 密码的话,所有操作都会被阻挡。
修改密码
进入 Mysql 后,可以使用 UPDATE
命令修改用户的密码
|
|
官方更建议使用 ALERT USER
|
|
命令行修改注意事项
- 使用随机密码时,
ALERT
授权主机必须为localhost
,即使127.0.0.1
也不行。 - 使用随机密码时,在命令行中必须使用
--connect-expired-password
参数
如下:
|
|
Mysql 5.7 密码插件 validate_password
这个 validate_password 密码强度审计插件决定了你设置的密码是否“过于简单”。
|
|
MYSQL 5.7初始化后,默认会安装这个插件,若没有安装,则SHOW VARIABLES LIKE ‘vali%‘则会返回空。 对应参数的value值也为默认值,以下是这些值的解释
- validate_password_length 8 # 密码的最小长度,此处为8。
- validate_password_mixed_case_count 1 # 至少要包含小写或大写字母的个数,此处为 1。
- validate_password_number_count 1 # 至少要包含的数字的个数,此处为 1。
- validate_password_policy MEDIUM # 强度等级,其中其值可设置为 0、1、2。分别对应:
- 【0/LOW】:只检查长度。
- 【1/MEDIUM】:在0等级的基础上多检查数字、大小写、特殊字符。
- 【2/STRONG】:在1等级的基础上多检查特殊字符字典文件,此处为1。
- validate_password_special_char_count 1 # 至少要包含的个数字符的个数,此处为 1。
- 原文链接:https://typonotes.com/posts/2016/12/30/mysql56-57-password-issue/
- 本文为原创文章,转载注明出处。
- 欢迎 扫码关注公众号
Go与云原生
或 订阅网站 https://typonotes.com/ 。 - 第一时间看后续精彩文章。觉得好的话,请猛击文章右下角「在看」,感谢支持。