MySQL5.7 登陆后无法使用命令报错

MySQL5.7 登陆后无法使用命令报错

Scroll Down

MySQL5.7登陆以后,但是无法使用命令,老是提示:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

557bbe267e794f3599aeb3e48e69ed1b.jpg

错误信息

这个是因为用户的初始化密码报错。这个是与validate_password_policy的值有关。也就是说我们设置的密码组成结构不能满足密码策略要求!

通过msyql环境变量查看密码策略的信息:

show variables like '%password%';

9bf5e4983c574a3d93f175777a6d6040.jpg

密码策略

如果不需要密码策略,在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策略,共有如下三种密码策略:

a6b53c5a2fd14d7691fd5087be123404.jpg

密码策略

解决办法: 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)

5025ff90421d40e09ab2ac84c214adc2.jpg