当前位置:Gxlcms > 数据库问题 > Mysql grant all privileges on ...不生效解决方案

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

时间:2021-07-01 10:21:17 帮助过:59人阅读

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   

人气教程排行