最近在编写mysql一键安装的脚本,遇到的坑一个接着一个,足足折磨了我三天,初步完成了mysql安装部分,这里要好好说一下mysql修改密码的一些事情!!!
一篇文章写完有点多,我这里拆成几个部分来讲吧
1、问题
看到这个报错,“你的密码不满足当前的密码限制要求”
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
第一反应就是要查看一下密码限制的要求是什么!哪里有问题就看哪里!
2、分析
进入msyql数据库里,直接使用查看命令
mysql -uroot -p******
show variables like 'validate_password%';
接着你会看到如下信息:
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.02 sec)
变量名称 | 变量值 | 备注 |
验证用户名 | 否 | 指是否验证登录名称,即root |
字典文件 | ||
验证密码长度 | 8 | 要求密码长度是8位 |
大小写的最小个数 | 1 | 大小写至少一个 |
数字的最小个数 | 1 | 最少一个数字 |
密码强度 | 中等 | 密码强度分为low(0)、medium(1)、strong(2)三种 |
特殊字符最少数量 | 1 | 特殊字符至少一个 |
密码强度说明
密码强度 | 说明 |
LOW | 校验级别最低,只校验密码长度,默认长度是8位 |
MEDIUM | 首先要满足的是密码强度为“LOW”时的所有验证要求,再验证密码中的数字个数、大小写个数、特殊字符个数 |
STRONG | 要求满足密码强度为 “LOW”和“MEDIUM”时的所有验证要求,还要求对于密码中任意连续4个(或4个以上)字符不得是字典中的单词(validate_password_dictionary_file) |
3、解决
了解了原理,现在就可以对症下药了
首先确认自己想要设置什么样的密码
其次根据密码格式进行修改
最后就可以直接修改而不会报错了
案例
要将密码设置为123456
将密码等级设置为低,此时只需要校验密码长度即可。
set global validate_password.policy=LOW;
这时,我们将密码长度设置为6,则满足要求
set global validate_password.length=6;
修改密码的命令
ALTER user 'root'@'localhost' identified by "123456";
4、总结
知己知彼,百战不殆 ~ ~
掌握了如何修改密码限制的法门,设置个性化的密码,还不是轻而易举的事吗!!!