发布于 3年前

MySQL报错:mysql:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

报错原因:这是因为为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。

一般可通过log_error设置

mysql>select@@log_error;

可通过# grep "password" /var/log/mysqld.log 命令获取MySQL的临时密码


1.如果用该密码登录到服务端后,必须马上修改密码,不然会报如下错误:

mysql>selectuser();

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

2.如果只是修改为一个简单的密码,会报以下错误:

mysql>ALTERUSERUSER() IDENTIFIEDBY'12345678';

ERROR 1819(HY000): Your password doesnotsatisfy thecurrentpolicy requirements


这个其实与validate_password_policy的值有关。

有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。

必须修改两个全局参数:

首先,修改validate_password_policy参数的值

mysql>setglobal validate_password_policy=0;

Query OK, 0rows affected (0.00sec)


这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。

mysql>select@@validate_password_length;

mysql>select@@validate_password_length;

mysql>setglobal validate_password_length=1;

mysql>select@@validate_password_length;

mysql>select@@validate_password_length;

mysql>select@@validate_password_mixed_case_count;

mysql>setglobal validate_password_mixed_case_count=2;

mysql>select@@validate_password_mixed_case_count;

mysql>select@@validate_password_length;

©2020 edoou.com   京ICP备16001874号-3