发生的问题是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'在密码栏下。
编辑:已解决检查我的解决方案。
答案 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;