布置云服务器mysql注意事项:Your password does not satisfy the current policy requirements
一、在设定云服务mysql初始密码时候出现的问题,我们最初的密码可以通过下面语句查询配置文件获得:
[root@iZeot51lvlg4jrZ mysql]# sudo grep 'temporary password' /var/log/mysqld.log
2025-03-03T05:42:05.448357Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: g)hv_o(Y/4yX
g)hv_o(Y/4yX这个就是初始临时密码。
二、我们采用初始密码登录后,最开始无法设定简单的123456:会报错如下:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这是我们最初不符合相应的语法规则:我们需要进行更改,
三、修改密码规则前需要先设定一个合规的的密码:
1. 了解当前密码策略
MySQL 有不同的密码验证插件,默认使用的是 caching_sha2_password
验证插件,并且有一定的密码强度要求。你可以通过以下命令查看当前的密码策略:
sql
SHOW VARIABLES LIKE 'validate_password%';
该命令会输出一系列与密码验证相关的变量及其值,其中比较重要的几个变量如下:
ini
validate_password.length = 6
validate_password.policy = LOW
validate_password.length
:密码的最小长度。validate_password.policy
:密码策略级别,取值范围为0
(LOW)、1
(MEDIUM)、2
(STRONG)。validate_password.number_count
:密码中至少包含的数字个数。validate_password.special_char_count
:密码中至少包含的特殊字符个数。validate_password.mixed_case_count
:密码中至少包含的大小写字母个数。1. 设置符合要求的初始密码
你需要先设置一个符合当前密码策略要求的初始密码。根据之前提到的密码策略,我们可以设置一个相对复杂的密码,例如
MyPass123!
。在 MySQL 命令行中执行以下语句:sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyPass123!';
如果执行成功,再执行以下命令刷新权限,让修改生效:sql
FLUSH PRIVILEGES;
2. 再次尝试调整密码策略
完成密码重置后,你就可以再次尝试调整密码策略了。例如,将密码最小长度设置为
6
,密码策略级别设置为LOW
:sqlSET GLOBAL validate_password.length = 6; SET GLOBAL validate_password.policy = LOW;
3. 再次修改密码
密码策略调整完成后,你可以再次尝试将密码修改为你想要的相对简单的密码,如
123456
:sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; FLUSH PRIVILEGES;
注意事项
- 为了保证数据库的安全性,虽然可以降低密码策略要求,但不建议使用过于简单的密码。
- 修改全局变量的设置只会对后续的会话生效,如果你希望这些设置在 MySQL 重启后仍然有效,需要将相应的配置添加到 MySQL 的配置文件(如
/etc/my.cnf
)中。例如,在[mysqld]
配置段中添加以下内容: