MySQL中flush privileges的用处

2019-11-23 16:53:00
六月
转贴 1263

flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。

MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。

通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

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

mysql> flush privileges;­

mysql> quit­

答:­

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

具体例子: ­

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

create user xh identified by ‘xh’;    //创建一用户xh并添加密码为xh­

exit;    //退出测试­

2.返回C目录下用新用户重新进入mysql­

mysql -uxh -pxh   //进入成功­

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

update user set password=password (‘monkey’) where user=’xh’;   //更改xh用户密码为monkey­

exit;     //再次退出测试­

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

mysql -uxh -pmonkey;  //报错,密码不正确­

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

update user set password=password (‘monkey’) where user=’xh’;   //更改xh用户密码为monkey­

flush privileges;   //刷新MySQL的系统权限相关表­

exit;­

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

参考: http://www.dataguru.cn/thread-857375-1-1.html

发表评论
评论通过审核后显示。