先修改密码策略再更新密码。通过SHOW VARIABLES查看当前策略,使用SET GLOBAL调整如validate_password_policy和Length等参数,修改后需确保新密码符合规则,否则ALTER USER会报错,可通过配置文件持久化设置,紧急时可临时卸载插件但不推荐生产环境使用。

mysql密码策略的修改与用户密码的更新是两个紧密关联的操作。设置严格的密码策略能提升数据库安全性,但在修改策略后,后续的密码更改操作必须满足新规则,否则会报错。下面说明如何调整MySQL密码策略,并理解其对密码修改的影响。
查看当前密码策略
MySQL通过validate_password插件实现密码强度验证。首先确认插件是否启用:
SHOW VARIABLES LIKE ‘validate_password%’;
常见参数包括:
- validate_password_policy:密码策略等级(0=LOW, 1=MEDIUM, 2=STRONG)
- validate_password_length:最小长度
- validate_password_mixed_case_count:至少包含的大写和小写字母数
- validate_password_number_count:至少包含的数字个数
- validate_password_special_char_count:至少包含的特殊字符数
修改密码策略
可通过SET GLOBAL命令动态调整策略。例如,降低为低强度要求:
SET GLOBAL validate_password_policy = LOW;
若要允许更短密码:
SET GLOBAL validate_password_length = 6;
注意:这些设置在MySQL重启后可能失效,如需持久化,应写入配置文件my.cnf或my.ini:
[mysqld] validate_password_policy=LOW validate_password_length=6 validate_password_mixed_case_count=1 validate_password_number_count=1 validate_password_special_char_count=1
密码修改受策略约束
当用户执行ALTER USER或SET PASSWORD时,新密码必须符合当前策略。例如:
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘weak’;
若策略为MEDIUM且密码太简单,系统将返回错误:
Error 1819 (HY000): Your password does not satisfy the current policy requirements
解决方法是使用符合规则的密码,如:
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyP@ssw0rd!’;
临时关闭密码策略(谨慎使用)
在紧急情况下可临时禁用验证插件:
UNINSTALL PLUGIN validate_password;
之后可设置任意密码。但操作完成后建议重新安装:
INSTALL PLUGIN validate_password SONAME ‘validate_password.so’;
生产环境不推荐长期关闭策略。
基本上就这些。调整密码策略后,所有后续的密码修改都必须满足新规则。提前规划策略级别,避免影响运维操作。