1.在MySQL运行时可以使用超级权限修改此配置:
mysql> SET GLOBAL default_password_lifetime = 90;
Query OK, 0 rows affected (0.00 sec)
还可以使用ALTER USER命令为每个具体的用户账户单独设置特定的值,它会自动覆盖密码过期的全局策略。要注意ALTER USER语句的INTERVAL的单位是“天”。
ALTER USER ‘testuser’@‘localhost' PASSWORD EXPIRE INTERVAL 30 DAY;
#配置文件
[mysqld]
default_password_lifetime=90
or
#命令行全局修改
mysql> SET GLOBAL default_password_lifetime = 90;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> show variables like "default_password_lifetime";
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| default_password_lifetime | 90 |
+---------------------------+-------+
2.设置单个密码可重复使用时间和可重复使用的间隔次数
-- 设置密码为每间隔5次才可以重复使用
mysql> create user yeyz3@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz3' password history 5;
Query OK, 0 rows affected (0.01 sec)
-- 设置密码为每隔5天才可以重复使用
mysql> create user yeyz4@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz4' password reuse interval 5 day;
Query OK, 0 rows affected (0.01 sec)
-- 设置密码为每隔5天可以重复使用或者每个5次才可以重复使用,取最严格的那个条件
mysql> create user yeyz5@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz5' password reuse interval 5 day password history 5;
Query OK, 0 rows affected (0.01 sec)
-- 使用默认的全局密码可重复使用策略,也就是password history参数和password reuse interval参数
mysql> create user yeyz6@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz6' password reuse interval default password history default;
Query OK, 0 rows affected (0.01 sec)
3.让用户使用默认的密码过期全局策略:
ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE DEFAULT;
4.全局设定
mysql> SET GLOBAL default_password_lifetime = 90;
单个用户设定
为每个具体的用户账户单独设置特定的值
ALTER USER ‘test’@‘localhost‘ PASSWORD EXPIRE INTERVAL 30 DAY;
禁用密码过期:
ALTER USER ‘test‘@‘localhost‘ PASSWORD EXPIRE NEVER;
让用户使用默认的密码过期全局策略:
ALTER USER ‘test‘@‘localhost‘ PASSWORD EXPIRE DEFAULT;
设置用户密码过期
mysql> ALTER USER ‘test‘@‘localhost‘ PASSWORD EXPIRE;
查看用户是否过期
select user,host,password_expired,password_last_changed,password_lifetime from user;
password_expired:枚举值,设置用户密码是否过期的开关,默认为N。
password_last_changed:记录密码最近修改的时间
password_lifetime:设置密码的有效时间,天数
show create user [email protected]‘localhost‘;
ALTER USER [email protected]‘localhost‘ IDENTIFIED BY ‘password‘;