MySQL默认不启用密码强度校验,需手动安装validate_password插件并设为MEDIUM策略,配置最小长度、数字、大小写及特殊字符要求,同时重置弱密码账户并辅以匿名用户清理、root远程限制等安全措施。
MySQL 本身不自带强制密码强度校验功能,需通过插件(如 validate_password)启用密码策略,否则默认允许如 123456、password 等弱密码,存在明显安全风险。
该插件是 MySQL 官方提供的密码强度验证模块,支持最低长度、数字、大小写字母、特殊字符等要求。
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
SHOW PLUGINS; 查看 validate_password 状态为 ACTIVE
mysql-common 或对应版本的插件包插件提供三个强度等级:LOW(仅长度)、MEDIUM(长度+数字+大小写+特殊字符)、STRONG(额外校验字典文件)。推荐设为 MEDIUM。
SELECT @@validate_password_policy;
SET GLOBAL validate_password_policy = MEDIUM;
SET GLOBAL validate_password_l
ength = 8;SET GLOBAL validate_password_number_count = 1;SET GLOBAL validate_password_mixed_case_count = 1;SET GLOBAL validate_password_special_char_count = 1;
my.cnf 的 [mysqld] 段落中插件启用后,仅对新设或修改的密码生效。已有弱密码用户不会被自动拦截,需主动更新。
SELECT user, host, password_last_changed FROM mysql.user WHERE password_last_changed IS NULL OR password_last_changed = '0000-00-00 00:00:00';(部分版本适用)ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass#2025';
root、管理员及远程访问账户仅靠密码策略不够,还需结合其他措施降低风险。
DROP USER ''@'localhost';
'root'@'localhost',删除 'root'@'%'