为了账号安全,请及时绑定邮箱和手机立即绑定

请教一下,mysql什么时候需要flush privileges?

请教一下,mysql什么时候需要flush privileges?

慕仙森 2019-11-11 15:06:40
mysql什么时候需要flush privileges
查看完整描述

4 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

必须使用flush privileges的两种情况

1、改密码。

2、授权超用户。

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

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

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

扩展资料:


mysql 修改密码后,注意flush privileges。

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密码进入,测试成功。



查看完整回答
反对 回复 2019-11-16
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

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

查看完整回答
反对 回复 2019-11-16
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

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密码进入,测试成功!­

查看完整回答
反对 回复 2019-11-16
?
潇湘沐

TA贡献1816条经验 获得超6个赞

0 reload 是 administrative 级的权限,即 server administration;这类权限包括:
CREATE USER, PROCESS, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHOW DATABASES, SHUTDOWNSUPER

1 这类权限的授权不是针对某个数据库的,因此须使用on *.* 来进行:

grant reload on *.* to 'test'@'localhost';

查看完整回答
反对 回复 2019-11-16
  • 4 回答
  • 0 关注
  • 1953 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信