什么时候需要FLUSH PRIVILEGES;

本人github

在 MySQL 中,FLUSH PRIVILEGES; 命令用于重新加载授权表(即 user 表),以使权限或账户相关的更改立即生效。通常,在以下几种情况下需要使用 FLUSH PRIVILEGES;

1. 直接编辑授权表

如果您直接使用 SQL 命令如 INSERTUPDATEDELETE 来更改 MySQL 的授权表(通常是在 mysql 数据库中的 user 表),则需要运行 FLUSH PRIVILEGES; 来重新加载这些更改。例如:

INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject) VALUES ('new_user','localhost',PASSWORD('new_password'),'','','');
FLUSH PRIVILEGES;

在这个例子中,直接向 user 表添加了一个新用户,因此需要用 FLUSH PRIVILEGES; 来应用这个更改。

2. 使用 mysqldump --flush-privileges

当通过 mysqldump 命令导出 MySQL 数据并使用 --flush-privileges 选项时,导出的 SQL 脚本包含 FLUSH PRIVILEGES;。在导入这个脚本时,将执行该命令。

3. 在更改密码文件后

如果您使用了 mysqladmin 命令或其他方法直接修改了密码文件,可能需要运行 FLUSH PRIVILEGES;

不需要 FLUSH PRIVILEGES; 的情况

对于使用 CREATE USERDROP USERGRANTREVOKESET PASSWORD 等高级 SQL 命令更改用户权限或密码的情况,不需要运行 FLUSH PRIVILEGES;。这些命令会自动重新加载权限,使更改立即生效。

例如,当您使用 ALTER USER 命令更改密码时:

ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';

在这种情况下,就不需要运行 FLUSH PRIVILEGES;,因为 ALTER USER 命令已经隐式地执行了这个操作。

总结

FLUSH PRIVILEGES; 主要用在直接编辑 MySQL 权限表的场景。在大多数常规操作中,如通过标准的账户和权限管理命令进行的更改,MySQL 会自动处理权限的重新加载,无需手动执行 FLUSH PRIVILEGES;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我想要身体健康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值