mysql升级5.7版本以后,安全性大幅度上升。
但是呢。。。带复杂的记不住。额额。。本来脑子就不好使,还记那么复杂,尤其是本地就更没必要,还是root方便。
进入mysql
- mysql> SHOW VARIABLES LIKE 'vali%';
- +--------------------------------------+--------+
- | Variable_name | Value |
- +--------------------------------------+--------+
- | 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 |
- +--------------------------------------+--------+
- 6 rows in set (0.00 sec)
根据官方文档可以发现策略为1,即MEDIUM
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。
所以你更改密码必须满足:数字、小写字母、大写字母 、特殊字符、长度至少8位
怎么改呢??
想要关闭这个插件,则在配置文件中加入 validate_password=off 并重启mysqld即可:
在 vim /etc/my.cnf配置文件中增加
[mysqld] validate_password=off
然后重启mysql 就 ok了.
重新启动mysqld
#/etc/init.d/mysqld restart ( service mysqld restart )
重如果想把密码改回来 进入mysql 执行 5.7的数据库没有了password字段 用的是authentication_string字段
mysql> update mysql.user set authentication_string=password('root') where user='root' ;
最后你还要设置一下过期时间,以防止密码失效。
在/etc/my.cnf配置文件中增加
[mysqld] default_password_lifetime=0
或者直接通过命令设置
ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER