MySQL密码过期策略通过default_password_lifetime参数控制,默认为0表示永不过期;可设置全局策略如SET GLOBAL default_password_lifetime = 90,使新用户密码每90天过期;也可为指定用户设置过期规则,如ALTER USER 'root'@'localhost' PASSWORD EXPIRE INTERVAL 30 DAY;密码过期后需用ALTER USER语句重置并刷新权限;管理员还可强制用户密码立即过期以确保安全。

MySQL密码过期策略可以通过修改用户的密码过期时间来控制,适用于需要定期更换密码的安全策略场景。下面介绍如何查看、修改密码过期时间以及重置已过期的密码。
查看当前密码过期策略
MySQL通过全局变量default_password_lifetime控制默认密码过期天数。执行以下命令查看:
SELECT @@default_password_lifetime;
如果返回值为0,表示默认不启用密码过期;若为数字(如90),则表示密码每90天需更换一次。修改全局密码过期时间
若要设置所有新用户默认的密码有效期,可修改全局参数:SET GLOBAL default_password_lifetime = 90;
这将设置新创建的用户密码每90天过期。注意:MySQL 8.0之后该值默认为0(永不过期),需手动开启。要在配置文件中永久生效,可在my.cnf或my.ini中添加:
[mysqld] default_password_lifetime = 90
设置指定用户的密码过期时间
可以为单个用户设置特定的过期策略:- ALTER USER 'username'@'localhost' PASSWORD EXPIRE INTERVAL 60 DAY; —— 每60天过期
- ALTER USER 'username'@'localhost' PASSWORD EXPIRE NEVER; —— 永不过期
- ALTER USER 'username'@'localhost' PASSWORD EXPIRE DEFAULT; —— 使用全局策略
例如,让root用户密码每30天过期:
ALTER USER 'root'@'localhost' PASSWORD EXPIRE INTERVAL 30 DAY;
重置已过期的密码
当用户登录时提示Your password has expired,需立即重置密码。
登录后执行:
ALTER USER USER() IDENTIFIED BY 'new_password';
或指定具体用户:ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_secure_password';
完成后执行FLUSH PRIVILEGES;刷新权限。
强制密码过期(用于下次登录修改)
管理员可强制某个用户密码立即过期,促使其下次登录时修改:ALTER USER 'username'@'localhost' PASSWORD EXPIRE;
该操作常用于员工离职交接或安全审计后要求重设密码。基本上就这些。合理设置密码过期时间有助于提升数据库安全性,但也要避免频繁过期影响正常运维。根据实际安全需求调整策略即可。










