报错原因:这是因为为了加强安全性,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;