MySQL 5.7 修改密码报错的问题

Linux服务器下通过云安装安装 MySQL 后,默认密码为空,然后运行 mysqlsecureinstallation 命令设置密码(1234)出现"Your password does not satisfy the current policy requirements. "错误。问题

原因分析:这与数据库中validatepasswordpolicy的值有关,数据库5.6版本之后。validatepasswordpolicy默认是1,即MEDIUM(必须符合长度,且必须含有数字,小写或大写字母,特殊字符)。

必须修改两个全局参数:

  1. 修改validatepasswordpolicy参数的值
  2. 设置validatepasswordlength参数(默认为8)

解决办法:

  1. 命令 mysql -uroot 登录 MySQL
  2. 回车,更改密码强度为 LOW(代表密码任意,但长度在 8 位或以上)                                                            set global validate_password_policy=0;
  3. LOW 密码强度允许我们设置为纯数字纯字母等密码,但是我们还是不能设置 1234,因为最低要求 8 位,没事,继续下一句validatepasswordlength的最小长度是4 。                                                                        set global validate_password_length=4;
  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有以下取值:

PolicyTests Performed
0 or LOWLength
1 or MEDIUMLength; numeric, lowercase/uppercase, and special characters
2 or STRONGLength; numeric, lowercase/uppercase, and special characters; dictionary file


有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为1234。默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

必须修改两个全局参数:

1.validatepasswordpolicy参数的值,

2alidatepasswordlength参数(默认为8)

转载于:https://my.oschina.net/u/3901869/blog/1840562

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值