MySQL密码定期更换的方法(附带实例)
MySQL 8.0 允许数据库管理员手动设置账户密码的过期时间,任何密码超期的账户想要连接服务端时都必须更改密码。
在 MySQL 中,通过设置 default_password_lifetime 参数,可以设置账户过期时间。
下面通过示例来学习。首先查看系统中的账户过期时间。输入语句如下:
下面设置 root 用户的密码过期时间为 365 天,输入语句如下:
将 root 用户的密码过期重新设置为永不过期,输入语句如下:
在 MySQL 中,通过设置 default_password_lifetime 参数,可以设置账户过期时间。
下面通过示例来学习。首先查看系统中的账户过期时间。输入语句如下:
mysql> SELECT user,host, password_last_changed, password_lifetime, password_expired FROM mysql.user \G *************************** 1. row *************************** user: grantUser host: localhost password_last_changed: 2022-03-27 12:02:09 password_lifetime: NULL password_expired: N *************************** 2. row *************************** user: jeffrey host: localhost password_last_changed: 2022-03-27 12:00:40 password_lifetime: NULL password_expired: N *************************** 3. row *************************** user: mysql.infoschema host: localhost password_last_changed: 2022-03-27 11:43:30 password_lifetime: NULL password_expired: N *************************** 4. row *************************** user: mysql.session host: localhost password_last_changed: 2022-03-27 11:43:30 password_lifetime: NULL password_expired: N *************************** 5. row *************************** user: mysql.sys host: localhost password_last_changed: 2022-03-27 11:43:30 password_lifetime: NULL password_expired: N *************************** 6. row *************************** user: root host: localhost password_last_changed: 2022-03-27 11:43:50 password_lifetime: NULL password_expired: N在这个结果中,password_lifetime: NULL 表示密码永不过期。
下面设置 root 用户的密码过期时间为 365 天,输入语句如下:
mysql> ALTER USER root@localhost PASSWORD EXPIRE INTERVAL 365 DAY; Query OK, 0 rows affected (0.00 sec)再次查看 root 用户的信息,输入语句如下:
mysql>SELECT user,host, password_last_changed, password_lifetime, password_expired FROM mysql.user WHERE user = 'root'\G *************************** 1. row *************************** user: root host: localhost password_last_changed: 2022-03-27 14:10:08 password_lifetime: 365 password_expired: N 1 row in set (0.00 sec)从结果可以看出,root 用户的 password_lifetime 已经被修改为 365 天。
将 root 用户的密码过期重新设置为永不过期,输入语句如下:
mysql> ALTER USER root@localhost PASSWORD EXPIRE DEFAULT; Query OK, 0 rows affected (0.00 sec)再次查看 root 用户的信息,输入语句如下:
mysql> SELECT user,host, password_last_changed, password_lifetime, password_expired FROM mysql.user WHERE user = 'root'\G *************************** 1. row *************************** user: root host: localhost password_last_changed: 2022-03-27 11:43:50 password_lifetime: NULL password_expired: N 1 row in set (0.00 sec)从结果可以看出,password_lifetime 又被重新设置为 NULL,此时该用户的密码将永不过期。