首先确认并安装validate_password插件,然后配置密码策略级别、长度及字符要求,通过SET GLOBAL命令设置并写入配置文件使其永久生效,最后测试密码修改验证规则是否起作用。
MySQL密码复杂度通过插件机制实现,最常用的是validate_password插件。启用后可强制用户设置符合安全要求的密码,防止弱口令。以下是在MySQL中设置和修改密码复杂度的完整步骤。
登录MySQL后执行:
SELECT * FROM mysql.plugin WHERE name = 'validate_password';如果没有结果返回,说明插件未安装,需手动启用。
运行以下命令安装插件:
INSTALL PLUGIN validate_password SONAME 'validate_password.so';安装成功后可通过以下语句验证:
SHOW VARIABLES LIKE 'validate_password%';validate_password提供多个参数用于控制密码强度,常见配置如下:
例如,设置为中级策略且密码至少12位:
SET GLOBAL validate_passwor
d.policy = MEDIUM;以上设置在重启后会失效,需写入MySQL配置文件(如/etc/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf):
[mysqld]保存后重启MySQL服务:
systemctl restart mysql尝试修改用户密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';如果密码太简单,系统将报错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements使用符合规则的密码即可成功:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyP@ssw0rd!2025';基本上就这些。开启密码复杂度能有效提升数据库安全性,建议生产环境务必启用并合理配置策略。不复杂但容易忽略。