码迷,mamicode.com
首页 > 数据库 > 详细

Mysql grant all privileges on ...不生效解决方案

时间:2018-02-12 15:10:09      阅读:1836      评论:0      收藏:0      [点我收藏+]

标签:img   方法   str   info   用户名   mys   c中   所有权限   select   

情景:我在mac的终端下用ssh操作虚拟机中的centos,mysql运行在centos中

mysql -u root -p

用root登录mysql后

使用

grant all privileges on db1.* to user1@% identified by user1 with grant option;

意为:给所有主机登录(%指任意主机)的用户名为user1(密码为user1,identified by后接密码) 授予操作数据库db1下所有数据表(db1.*指db1所有数据表)的所有权限。

此时

select * from mysql.user \G;

发现user1的权限还是N,即上面授予操作无效,为什么呢?

 

原因:

这时在mysql下root登录,执行show grants;显示

grant all privileges on *.* to root@localhost xxxxxxxxxxxx

对于本地主机下登录的root用户才有所有权,而这时我是在mac的终端下ssh操作虚拟机中的mysql,这时的root用户当然没有所有权。

解决方法:回到虚拟机中登录mysql的root操作。

在虚拟机mysql中添加:

grant all privileges on *.* to root@% identified by root的密码 with grant option;

添加后再用

select * mysql.user \G;

发现多了一行,内容是用户为root,主机为%,拥有所有权限。

 

这时就可以回到mac在mysql登录root操作了。

如果这时还不行,可以用以下方法:

在mac中打开mysqlworkbench(需要另外下载),用mysql root用户远程登录虚拟机的mysql。

我这时虚拟机的地址是192.168.20.101(确保虚拟机的防火墙关了或者开启了mysql的端口3306)。

技术分享图片

 

登录后在左上角选择Users and Privileges,可以添加用户,并在Administration Roles选卡添加用户权限。

 

技术分享图片

Mysql grant all privileges on ...不生效解决方案

标签:img   方法   str   info   用户名   mys   c中   所有权限   select   

原文地址:https://www.cnblogs.com/zslhg903/p/8444289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!