解决mysql中 you are not allowed to create user with grant 的问题

一、连接到本机上的Mysql

① 找到mysql的安装目录
②直接键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好Mysql,超级用户root是没有密码的,故直接回车即可进入到Mysql中了,Mysql的提示符是:mysql>

二、连接到远程主机上的Mysql

远程主机的IP为:1.1.1.1,端口号为:3306,用户名为:test,密码为:123。则输入以下命令:

 /usr/bin/mysql -h 1.1.1.1 -P3306 -u test -p123

三、进入并使用mysql

如test1,直接输入命令:use mysql即可

 use mysql;

进入mysql库后,即可对数据库进行增删改查常规的操作。

## 解决mysql中 you are not allowed to create user with grant 的问题

先查看一下错误------

```sql

>

mysql> grant select,insert on company.* to 'username'@'localhost' with grant opt

ion ;

ERROR 1410 (42000): You are not allowed to create a user with GRANT

mysql> grant select,insert on company.* to 'username'@'localhost' with grant opt

ion ;

ERROR 1410 (42000): You are not allowed to create a user with GRANT

```

排查原因--

1,查看root用户是否有grant_priv 权限,

```sql

mysql> select user ,grant_priv from user ;

+------------------+------------+

| user            | grant_priv |

+------------------+------------+

| mysql            | Y          |

| root            | Y          |

| huixin          | N          |

| mysql.infoschema | N          |

| mysql.session    | N          |

| mysql.sys        | N          |

| username        | N          |

+------------------+------------+

7 rows in set (0.00 sec)

```

发现有该权限,这说明不是权限的问题;继续排查下一个--

2,如果root用户仅在 localhost主机下去授权用户在别的主机上的权限也是不可以的,比如 ‘root'@'localhost’ 去授权别的主机用户  ‘username’@‘otherhost’ 也会报错,所以修改root用户的 host 为可以访问所有主机(打造一个真正的超级管理员),然后更新权限为拥有所有的权限,这里是必须要更新的,要不然还会报错,(对于为何要再次更新权限,我是这样理解的,只要更改了 user,host,或者authentication_string中的任何一个就要刷新权限)(对于为何要重新给 修改后的root用户重新赋予权限)因为没有刷新之前的记录的话新的权限没有覆盖

```sql

mysql> update user set host='%' where user='root' ;

Query OK, 0 rows affected (0.00 sec)

Rows matched: 1  Changed: 0  Warnings: 0

mysql> grant all privileges on *.* to 'root'@'%' ;

Query OK, 0 rows affected (0.00 sec)

```

3,刷新权限,授予权限

```sql

mysql> flush privileges ;

Query OK, 0 rows affected (0.00 sec)

mysql> grant select ,insert ,update on company.* to 'huixin_user'@'localhost' wi

th grant option ;#8.0之后的mysql不支持 授权的时候就进行用户创建,所以创建  之后才能授权;

ERROR 1410 (42000): You are not allowed to create a user with GRANT

mysql> grant select ,insert ,update on company.* to 'huixin'@'localhost' with gr

ant option ;

Query OK, 0 rows affected (0.00 sec)

  • 16
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值