mysql支持设置密码过期策略, 创建用户时默认是没有过期策略,需要显式设置。
本文介绍设置密码过期策略的相关使用指令。
1 设置密码过期时间
#设置用户密码过期天数,密码在30天后自动过期
ALTER USER 'myusername'@'%' PASSWORD EXPIRE INTERVAL 30 DAY;
#直接设置为过期
ALTER USER 'mysqlusername'@'%' PASSWORD EXPIRE;
2 解除密码过期
#取消过期天数设置,注意已经过期的用户密码,状态不会改变,只是更新了过期天数策略值为0。
alter user 'myusername'@'%' password expire never;
3 延长过期时间
#过期天数内设置用户密码更大的过期天数
ALTER USER 'agent'@'%' PASSWORD EXPIRE INTERVAL 60 DAY;
#在过期天数内修改密码
alter user 'agent'%'%' identified WITH mysql_native_password by 'xxxxxx';
4 过期后密码重置
#方式1 ,使用管理用户修改用户密码
alter user 'mysqlusername'%'%' identified WITH mysql_native_password by 'xxxxxx';
#方式2, 使用旧密码登录mysql,此时可以登录,但不能执行任意DDL,DML,只能修改密码
set password='xxxx';
5 查看用户密码过期信息
select user,host,password_expired,password_lifetime,password_last_changed from mysql.user;
# password_expired 显示密码是否过期,Y 标识过期,N标识未过期
# password_lifetime 标识过期天数设置
# password_last_changed 密码修改时间,修改时间+ password_lifetime 超过当前时间,密码则过期。