MySQL5.7登陆以后,但是无法使用命令,老是提示:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
错误信息
这个是因为用户的初始化密码报错。这个是与validate_password_policy的值有关。也就是说我们设置的密码组成结构不能满足密码策略要求!
通过msyql环境变量查看密码策略的信息:
show variables like '%password%';
密码策略
如果不需要密码策略,在my.cnf文件中添加如下配置禁用即可:
validate_password = off
修改完后记得需要重新启动MySQL服务
validate_password_dictionary_file #密码策略文件,策略为STRONG才需要
validate_password_length #密码最少长度
validate_password_mixed_case_count #大小写字符长度,至少1个
validate_password_number_count #数字至少1个
validate_password_special_char_count #特殊字符至少1个上述参数是默认策略MEDIUM的密码检查规则。
validate_password_policy #密码策略,默认为MEDIUM策略,共有如下三种密码策略:
密码策略
解决办法: 1、首先,修改validate_password_policy参数的值
mysql> set global validate_password_policy=0; #最低策略
Query OK, 0 rows affected (0.00 sec)
2、validate_password_length(密码长度)参数默认为8,我们修改为1
mysql> set global validate_password_length=1; #长度限制最低
Query OK, 0 rows affected (0.00 sec)
3、完成之后再次执行修改密码语句即可成功
mysql> alter user 'root'@'localhost' identified by 'zsj123';
Query OK, 0 rows affected (0.00 sec)
评论区