0

我正在尝试使用以下命令为 MySQL 用户设置权限。

GRANT ALL ON joomla.* to user@localhost;

我尝试了很多版本,但它们都返回:错误 1044(42000):用户''@'localhost' 拒绝访问数据库'joomla2'

这似乎表明用户名“user”没有通过?我已经尝试了上面命令的许多版本,还有什么我需要注意的。

PS:我的名字实际上不是“用户”,以防有人提到它是保留字或类似的东西。

4

6 回答 6

3

尝试查看权限表。例如:

> use mysql;
> select * from db;

这可能会提示您出了什么问题。

您也可以通过指定 user@'127.0.0.1' 并使用 -H 127.0.0.1 标志(如果您使用 mysql cmd line 客户端)连接来尝试通过 tcp 而不是 unix 套接字进行连接。

您是否尝试过使用 GRANT 语句的 'IDENTIFIED BY "mypwd"' 部分指定密码?

于 2009-04-28T07:33:55.913 回答
1

这对我有用:

GRANT ALL PRIVILEGES ON joomla.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

我认为问题在于您没有提供密码。

另外,您是否使用可以授予其他用户权限的用户?您是以 root 用户身份连接还是以普通用户身份连接?

于 2009-04-28T07:35:05.817 回答
1

根据MySQL 参考手册,我会说您错过了上述声明中的 ' 。

你试过了吗:

GRANT ALL ON joomla.* to 'user'@'localhost';
于 2009-04-28T07:35:58.950 回答
1

当您尝试运行此命令时,您是否以 user@localhost 身份登录到 MySQL?

如果是这样,您将无法在以 root 用户或其他能够分配权限的用户身份登录时为自己分配权限。

于 2009-04-28T07:43:00.103 回答
0

感谢大家。它没有回答问题,但这次我要重新安装 mysql 并给它一个正确的 root 用户名和密码。上次我把这些留空了。长期的解决方案,但它会解决问题。

于 2009-04-28T07:51:02.160 回答
0

之后有没有重启服务器?如果没有,您需要发出FLUSH PRIVILEGES

于 2009-04-28T08:35:30.693 回答