Linux服务器下通过云安装安装 MySQL 后,默认密码为空,然后运行 mysqlsecureinstallation 命令设置密码(1234)出现"Your password does not satisfy the current policy requirements. "错误。问题
原因分析:这与数据库中validatepasswordpolicy的值有关,数据库5.6版本之后。validatepasswordpolicy默认是1,即MEDIUM(必须符合长度,且必须含有数字,小写或大写字母,特殊字符)。
必须修改两个全局参数:
- 修改validatepasswordpolicy参数的值
- 设置validatepasswordlength参数(默认为8)
解决办法:
- 命令 mysql -uroot 登录 MySQL
- 回车,更改密码强度为 LOW(代表密码任意,但长度在 8 位或以上)
set global validate_password_policy=0;
- LOW 密码强度允许我们设置为纯数字纯字母等密码,但是我们还是不能设置 1234,因为最低要求 8 位,没事,继续下一句validatepasswordlength的最小长度是4 。
set global validate_password_length=4;
- 再次运行 mysqlsecureinstallation,安心的设置 1234 了。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------- -----------------------
为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。
一般可通过log_error设置
mysql> select @@log_error; +---------------------+ | @@log_error | +---------------------+ | /var/log/mysqld.log | +---------------------+ 1 row in set (0.00 sec)
可通过# grep "password" /var/log/mysqld.log 命令获取MySQL的临时密码
mysql> select @@log_error; +---------------------+ | @@log_error | +---------------------+ | /var/log/mysqld.log | +---------------------+ 1 row in set (0.00 sec)
用该密码登录到服务端后,必须马上修改密码,不然会报如下错误:
mysql> select user(); ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
如果只是修改为一个简单的密码,会报以下错误:
mysql> ALTER USER USER() IDENTIFIED BY '12345678'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这与validate_password_policy的值有关。
validate_password_policy有以下取值:
Policy | Tests Performed |
---|---|
0 or LOW | Length |
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为1234。默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
必须修改两个全局参数:
1.validatepasswordpolicy参数的值,
2alidatepasswordlength参数(默认为8)