mysql8密码过期设置_mysql8 参考手册--过期密码的服务器处理
时间: 2023-07-11 17:08:46 浏览: 48
在 MySQL 8 中,默认情况下,密码的过期时间是 0,也就是永不过期。但是,如果你想设置密码过期时间,可以使用以下步骤:
1. 确认密码过期策略
使用以下命令查看密码过期策略:
```
SELECT @@default_password_lifetime;
```
如果返回值为 0,则表示密码永不过期。如果返回值为非零正整数,则表示密码将在该时间段后过期。
2. 设置密码过期时间
使用以下命令设置密码过期时间:
```
ALTER USER 'user'@'host' PASSWORD EXPIRE INTERVAL X DAY;
```
其中,'user'@'host'是指定的用户和主机,X 是一个正整数,表示密码在 X 天后过期。
3. 强制用户更改密码
一旦密码过期,用户必须登录并更改密码。可以使用以下命令强制用户更改密码:
```
ALTER USER 'user'@'host' PASSWORD EXPIRE;
```
如果你想禁用过期密码策略,可以使用以下命令:
```
SET GLOBAL default_password_lifetime = 0;
```
需要注意的是,如果你启用了密码过期策略,并且用户没有及时更改密码,那么用户将无法登录到 MySQL 服务器。因此,你需要确保用户及时更改密码。
相关问题
mysql 设置密码过期时间
如果要在 MySQL 中设置密码过期时间,可以使用如下步骤:
1. 连接到 MySQL 数据库服务器。在命令行中,输入:
```
mysql -u username -p
```
其中 `username` 是你的 MySQL 用户名。
2. 输入密码,然后进入 MySQL 控制台。
3. 使用如下命令来设置密码过期时间:
```
ALTER USER 'username'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
```
其中 `username` 是你要设置密码过期时间的用户名,`localhost` 是该用户连接的主机名,`90` 是密码过期时间(以天为单位)。
4. 如果要取消密码过期时间,可以使用如下命令:
```
ALTER USER 'username'@'localhost' PASSWORD EXPIRE NEVER;
```
5. 最后,使用 `FLUSH PRIVILEGES` 命令刷新权限表。
注意:设置密码过期时间需要具有相应权限。
mysql8 更改用户密码报-skip-grant-table
在MySQL 8中,如果更改用户密码时出现"-skip-grant-table"错误,这是由于MySQL的安全机制所致。该错误产生时,通常是因为跳过访问控制表(skip-grant-table)的选项被设置为启用。
当启用了"-skip-grant-table"选项后,MySQL将跳过对访问控制表的读取和验证,使得可以无需密码直接登录MySQL。这样做是为了方便恢复忘记密码的情况。然而,这也带来了一定的安全风险,因此不建议在生产环境中长时间启用该选项。
要解决此问题并成功更改用户密码,需要按照以下步骤操作:
1. 首先,登录到MySQL服务器上的命令行界面。
2. 在命令行界面中,输入以下命令来停止MySQL服务:
sudo systemctl stop mysql
3. 接下来,使用以下命令启动MySQL服务,并且加上"--skip-grant-table"选项,以便在启动时跳过访问控制表的验证:
sudo mysqld --skip-grant-table &
4. 当MySQL服务成功启动后,打开另一个命令行界面窗口。
5. 在新的命令行界面中,输入以下命令来连接到MySQL服务器:
mysql -u root
6. 连接成功后,使用以下命令进入MySQL数据库:
use mysql;
7. 然后,执行以下命令来更改用户密码。例如,要更改用户名为"username"的用户的密码为"new_password",可以使用以下命令:
update user set authentication_string=password('new_password') where user='username';
8. 修改完成后,输入以下命令来刷新权限:
flush privileges;
9. 最后,退出MySQL数据库并停止MySQL服务:
quit
sudo systemctl stop mysql
10. 现在,你可以重新启动MySQL服务,并使用新的密码登录了:
sudo systemctl start mysql
请记住,在完成密码更改后,应在MySQL配置文件中注释或删除"--skip-grant-table"选项,以确保安全性。