无法使用root(或任何帐户)在MySQL中授予权限 - “用户'root访问被拒绝'@'localhost'”

时间:2015-03-01 17:14:07

标签: mysql permissions remote-access freebsd grant

我一直在搜索这个和其他论坛,但我已经碰壁了。我有一个工作的MySQL安装,但我想当我最近尝试恢复几个架构时,我认为我比我预期的更多。

所以这是我的问题: 我无法再从任何应用程序访问数据库了。他们被拒绝访问。当我研究时,我发现他们的账户已经不见了(因此上面的评论关于"比我预期的更多"。

我通常使用MySQL Workbench,但无法从我的客户端PC(Linux Kubuntu)访问数据库。所以我去了主机命令行......

我可以使用root @ localhost在命令行登录。注意,mysql在FreeNas上的FreeBSD监狱中运行。我最初有一个密码,但看到一些不同的重置密码选项可能有助于删除它。这就是为什么它现在是空的。

当我尝试执行以下

grant all privileges on *.* to 'root'@'localhost' identified by 'PASSWORD' with grant option;`

我收到以下错误

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

我已经通过用户表检查了授予的权限......一切看起来像我应该能够做到这一点。

`+-----------+------------+-------------------------------------------+-----------+------------+
| host      | user       | password                                  | Grant_priv | Super_priv |
+-----------+------------+-------------------------------------------+-----------+------------+
| localhost | root       |                                           | Y          | Y          |
| 127.0.0.1 | root       | *E3FCFF11BABD5D85A4D6F6A30AF940F8333E2495 | Y          | Y          |
| %         | root       | *E3FCFF11BABD5D85A4D6F6A30AF940F8333E2495 | Y          | Y          |
+-----------+------------+-------------------------------------------+------------+------------+`

我已完成select User();select current_user();以确认我是谁。

我已在--skip-grant-tables中重新启动,尝试重置权限'。

在这一点上,我迷失了还有什么可尝试的。任何想法或建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

好的 - 弄明白了我的问题。这个链接很有帮助。 https://dba.stackexchange.com/questions/16397/cannot-grant-privileges-as-root

我发现我的用户表与5.1版本的MySQL相比内联。我之前在跑步。我之前运行过mysql_upgrade,这次我不得不重新运行mysql_upgrade --force。这解决了权限问题。