解决MySQL 8.0 设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy require...

MySQL8.0下设置简单密码出现错误提示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

为什么要设置简单密码,不是不安全吗?因为本人内网访问的测试服务器,不想设置复杂的密码,就像简单点的密码比如root,123等。

但是新版 MySQL 8.0 加入密码安全度检测机制,导致报错。
解决方法如下

1、查看当前安全变量值,可用命令查看 validate_password 密码验证插件是否安装。

mysql> 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)

validate_password_length密码长度的最小值(这个值最小要是4)。
validate_password_number_count 密码中数字的最小个数。

validate_password_mixed_case_count大小写的最小个数。

validate_password_special_char_count 特殊字符的最小个数。

validate_password_dictionary_file 字典文件

2.修改变量

注意到8.0 比5.7多了带“.”的变量导致只设置一半是不够的,要想在高版本使用简单的密码,需要做这样设置:

mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password.length=1;
Query OK, 0 rows affected (0.00 sec)

然后再执行如下命令设置新的简单密码就OK了。
然后再执行如下命令设置新的简单密码就OK了

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.02 sec)

如果修改密码报错请看https://www.jianshu.com/p/01d80d3a3659

解决ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

推荐阅读更多精彩内容