Mysql Flush privileges命令的功能与使用

mysql什么时候需要flush privileges

 flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。 

 

mysql> update mysql.user set password=PASSWORD(‘新密码’) where User=’root’;

mysql> flush privileges;

mysql> exit;

mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。

 

具体例子:

 

1.用户root用户进入mysql再打开mysql数据库(use mysql)后-

  create user stu identified by ‘stu’;    ##创建一用户stu并添加密码为stu

  exit;    ##退出测试

2.用新用户重新进入mysql

  mysql -ustu -pstu   ##进入成功

3.重新使用root用户进入mysql并打开mysql数据库

  update user set password=password (‘123456’) where user='stu';   ##更改stu用户密码为123456

  exit;     ##再次退出测试-

4.直接以用户stu身份进入,用新密码进入看是否成功

  mysql -ustu -p123456;  ##报错,密码不正确

5. 重新以root 用户登陆并进入mysql数据库,重新修改用户密码-

  update user set password=password (‘123456’) where user='123456';   ##更改stu用户密码为123456

  flush privileges;   ##刷新MySQL的系统权限相关表-

  exit;

6.再次退出,并以stu用户123456密码进入,测试成功!

---------------------------------------------------

 

更新用户权限后,更应该刷新权限表!

 

修改mysql.user表后也需要刷新权限!

posted @ 2017-11-26 11:35  enjie  阅读(11702)  评论(0编辑  收藏  举报