mysql5.7以上版本对安全策略级别进行了提高。这个的本意是好的,但是像我这种需要对一些特定的库进行特殊分配的,只能用修改安全策略的方案来解决了。
进行密码修改时:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '1234567';
会报错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这时候有些文章说5.7版本的可以直接修改密码策略,但是我发现是不行的。
mysql> SHOW VARIABLES LIKE 'validate_password%';
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
解决方案:
先按照官方要求配置一个密码,需要有大小写加数字、长度大于8(也不要使用连续的字母、数字)。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Lyh46578+';
Query OK, 0 rows affected (0.00 sec)
然后查看现在才策略。
SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| 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 |
+--------------------------------------+--------+
修改:
set global validate_password_policy=0;
set global validate_password_length=4;
这样再去修改简单的密码就行了。当然,这是临时方案,重启后修改又要这样配置。
扫描二维码关注公众号,回复:
11231790 查看本文章
修改配置文件方案:
[mysqld]
validate_password_policy=LOW
重启。