我正在尝试使用以下命令为 MySQL 用户设置权限。
GRANT ALL ON joomla.* to user@localhost;
我尝试了很多版本,但它们都返回:错误 1044(42000):用户''@'localhost' 拒绝访问数据库'joomla2'
这似乎表明用户名“user”没有通过?我已经尝试了上面命令的许多版本,还有什么我需要注意的。
PS:我的名字实际上不是“用户”,以防有人提到它是保留字或类似的东西。
我正在尝试使用以下命令为 MySQL 用户设置权限。
GRANT ALL ON joomla.* to user@localhost;
我尝试了很多版本,但它们都返回:错误 1044(42000):用户''@'localhost' 拒绝访问数据库'joomla2'
这似乎表明用户名“user”没有通过?我已经尝试了上面命令的许多版本,还有什么我需要注意的。
PS:我的名字实际上不是“用户”,以防有人提到它是保留字或类似的东西。
尝试查看权限表。例如:
> use mysql;
> select * from db;
这可能会提示您出了什么问题。
您也可以通过指定 user@'127.0.0.1' 并使用 -H 127.0.0.1 标志(如果您使用 mysql cmd line 客户端)连接来尝试通过 tcp 而不是 unix 套接字进行连接。
您是否尝试过使用 GRANT 语句的 'IDENTIFIED BY "mypwd"' 部分指定密码?
这对我有用:
GRANT ALL PRIVILEGES ON joomla.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
我认为问题在于您没有提供密码。
另外,您是否使用可以授予其他用户权限的用户?您是以 root 用户身份连接还是以普通用户身份连接?
当您尝试运行此命令时,您是否以 user@localhost 身份登录到 MySQL?
如果是这样,您将无法在以 root 用户或其他能够分配权限的用户身份登录时为自己分配权限。
感谢大家。它没有回答问题,但这次我要重新安装 mysql 并给它一个正确的 root 用户名和密码。上次我把这些留空了。长期的解决方案,但它会解决问题。
之后有没有重启服务器?如果没有,您需要发出FLUSH PRIVILEGES