linux CentOS 7.4下 mysql5.7.20 密码改回来的处理方法

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

总结

相关推荐