MySQL为新用户授予权限会删除登录的权限

时间:2016-01-08 08:17:18

标签: mysql privileges grant

发生的问题是MySQL不允许我创建用户然后授予其权限。按照网站的指示:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'

->     WITH GRANT OPTION;

查询其资助时的结果如下:

mysql> 
SHOW GRANTS FOR 'monty'@'localhost';

+-------------------------------------------+
| Grants for monty@localhost                |
+-------------------------------------------+
| GRANT USAGE ON *.* TO 'monty'@'localhost' |
+-------------------------------------------+

我可以登录到monty,但没有任何权限,没有CREATE,SELECT等。

(返回root用户) 我尝试了'FLUSH PRIVILEGES'认为它会冲洗'授权表,但没有任何事情发生,授权表也没有更新。现在当我再次尝试登录monty时,我收到了这个错误:

  

ERROR 1524(HY000):插件' * BF06A06D69EC935E85659FCDED1F6A80426ABD3B'   未加载

(由FLUSH PRIVILEGES命令引起)

有关为何发生这种情况的任何建议?我认为我的设置有问题,但我不确定。

额外的信息:

使用USER()或CURRENT_USER()时,它显示root @ localhost。 SHOW GRANTS显示"在上授予所有特权。 TO' root' @' localhost' WITH GRANT OPTION"和"授予代理'' @'' TO' root' @' localhost'正如预期的那样,使用GRANT OPTION"因此,所有特权授予都在那里。

当我尝试" SELECT用户,密码来自mysql.user;"时,没有任何内容出现在' monty'在密码栏下。

编辑:已解决检查我的解决方案。

2 个答案:

答案 0 :(得分:1)

问题是虽然我安装了最新版本的MySQL,但出于某种原因仍然使用mysql.user的旧MySQL表。通过运行mysql.upgrade,它更新了mysql.user表,可以通过删除“密码”列来查看。

答案 1 :(得分:0)

试试这个,

CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';

FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;