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

解决mysql中 you are not allowed to create 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
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 权限,


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用户重新赋予权限)因为没有刷新之前的记录的话新的权限没有覆盖


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,刷新权限,授予权限


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)

由于huixin用户是之前创建好的,授权的时候又给他授权了grant_priv ,再次查看huiixn的权限


mysql> select user ,host,select_priv,insert_priv,update_priv,grant_priv from user where user='huiixn';
+------------------+-----------+-------------+-------------+-------------+------------+
| user             | host      | select_priv | insert_priv | update_priv | grant_priv |
+------------------+-----------+-------------+-------------+-------------+------------+
|        |
| huixin           | localhost | Y           | Y           | Y           | N          |
|        |
+------------------+-----------+-------------+-------------+-------------+------------+
7 rows in set (0.00 sec)

mysql>

以上就是解决的具体方式,整体思路如下:

登录root用户,
进入mysql数据库,
修改root 的主机名为可以访问所有主机,
重新更新root的所有权限
刷新权限
创建用户(如果之前创建过则不用再次创建)
授权给用户

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeMartain

祝:生活蒸蒸日上!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值