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‘;