mysql密码过期

最近对于mysql需要设置密码过期时间时发现,但是找来找去,发现对于mysql5.6来说,设置密码过期,是件不可能完成的事。

只有mysql5.7.4版本之后,密码过期才通过如下参数可能实现 。

default_password_lifetime=90

mysql5.6.37测试结果如下:

对于mysql5.6版本中,看网上提供了如下几个sql,但是唯有最后一个有用,会让密码直接过期。

ALTER USER 'root'@localhost' PASSWORD EXPIRE INTERVAL 90 DAYS;
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' PASSWORD EXPIRE DEFAULT;

ALTER USER 'root'@'localhost' PASSWORD EXPIRE;

所以在mysql5.6版本中,要让密码过期,唯有使用crontab定时任务来完成。


mysql5.7.20 对于系统中的

ALTER USER 'wxc'@'10.159.2.68' PASSWORD EXPIRE INTERVAL 90 DAYS;   #不支持此种语法。
ALTER USER 'wxc'@'10.159.2.68' PASSWORD EXPIRE NEVER; 
ALTER USER 'wxc'@'10.159.2.68' PASSWORD EXPIRE DEFAULT;

对于密码过期的用户,在使用ALTER USER 'wxc'@'10.159.2.68' PASSWORD EXPIRE NEVER; 使密码不过期时,此sql无效。可以使用update mysql.user 语法对password_expired字段的值进行更换时有用。

查询过期信息的语句如下:

select host,user,authentication_string,password_expired,password_last_changed,password_lifetime,account_locked from mysql.user;



你可能感兴趣的:(mysql)