什么时候需要FLUSH PRIVILEGES;_mysql flush privileges-CSDN博客
在 MySQL 中,FLUSH PRIVILEGES;
命令用于重新加载授权表(即 user
表),以使权限或账户相关的更改立即生效。通常,在以下几种情况下需要使用 FLUSH PRIVILEGES;
:
. 直接编辑授权表
如果您直接使用 SQL 命令如 INSERT
、UPDATE
或 DELETE
来更改 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;
不需要 FLUSH PRIVILEGES; 的情况
对于使用 CREATE USER、DROP USER、GRANT、REVOKE 和 SET PASSWORD 等高级 SQL 命令更改用户权限或密码的情况,不需要运行 FLUSH PRIVILEGES;。这些命令会自动重新加载权限,使更改立即生效。
例如,当您使用 ALTER USER 命令更改密码时:
ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';
在这种情况下,就不需要运行 FLUSH PRIVILEGES;,因为 ALTER USER 命令已经隐式地执行了这个操作。
总结
FLUSH PRIVILEGES; 主要用在直接编辑 MySQL 权限表的场景。在大多数常规操作中,如通过标准的账户和权限管理命令进行的更改,MySQL 会自动处理权限的重新加载,无需手动执行 FLUSH PRIVILEGES;。
——————————