在mysql中执行用户授权或者修改密码的语句时,如果输入的密码不符合当前密码策略的要求,就会出现Your password does not satisfy the current policy requirements的报错,此时可以通过调整密码策略等级来解决问题。
一、查看当前mysql密码策略配置
首先需要先查看当前mysql的密码策略相关参数,确定当前的策略等级和校验规则,登录mysql后执行如下语句:
-- 查看密码策略相关变量 SHOW VARIABLES LIKE 'validate_password%';
执行后会得到如下常见的参数说明:
| 参数名 | 含义 |
|---|---|
| validate_password_policy | 密码策略等级,可选值为0、1、2,分别对应低、中、高三个等级 |
| validate_password_length | 密码最小长度要求 |
| validate_password_mixed_case_count | 密码中需要包含的大小写字母个数 |
| validate_password_number_count | 密码中需要包含的数字个数 |
| validate_password_special_char_count | 密码中需要包含的特殊字符个数 |
二、降低密码策略等级的具体操作
1. 临时调整(重启mysql后失效)
如果只是临时需要降低策略完成授权操作,可以执行如下语句修改参数:
-- 将密码策略等级设置为低,0代表只校验密码长度 SET GLOBAL validate_password_policy = 0; -- 可选:将密码最小长度调整为4,默认是8 SET GLOBAL validate_password_length = 4;
修改完成后再次执行授权语句,就可以使用简单密码完成操作:
-- 示例:授权用户并指定简单密码 GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost' IDENTIFIED BY '1234'; FLUSH PRIVILEGES;
2. 永久调整(重启后仍生效)
如果需要永久降低密码策略等级,需要修改mysql的配置文件,不同系统下的配置文件路径不同:
- Linux系统通常是
/etc/my.cnf或者/etc/mysql/my.cnf - Windows系统通常是mysql安装目录下的
my.ini
在配置文件的[mysqld]区块下添加如下配置:
[mysqld] -- 设置密码策略等级为低 validate_password_policy=0 -- 设置密码最小长度为4 validate_password_length=4
保存配置文件后重启mysql服务即可生效,Linux系统重启命令如下:
systemctl restart mysqld
三、注意事项
降低密码策略等级会让密码的安全性下降,建议仅在测试环境或者内部可信环境中使用,生产环境尽量保持默认的密码策略等级,避免密码被轻易破解。如果调整策略后仍然提示密码不符合要求,可以再次查看validate_password%相关参数,确认配置是否生效。
另外如果mysql版本较低没有开启validate_password插件,就不会出现这个报错,此时如果需要开启密码策略,可以先安装该插件:
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
mysqlpassword_policy密码策略授权报错修改时间:2026-06-22 05:24:52