在MySQL中为用户授予权限

时间:2014-01-31 16:39:52

标签: mysql grant

在我网站的控制面板中,我创建了一个新的MySQL(5)数据库Test和一个密码为admin的新用户123。我尝试使用以下方式为用户admin分配权限:

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost'

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'Test'

我一直收到以下错误:

  

#1045 - 用户'admin'@'%'的访问被拒绝(使用密码:是)

我需要为用户admin提供以下权限:

  

CREATE,ALTER,DELETE,INSERT,SELECT,UPDATE,LOCK TABLES

如何在phpMyAdmin的查询中进行此操作?

2 个答案:

答案 0 :(得分:1)

我猜您正在尝试更改以该用户身份登录的'admin'@''%'权限。这很奇怪。

您可以使用

显示您登录的用户
SELECT USER();

然后检查帐户已有的资助:

SHOW GRANTS FOR 'admin'@''%';

我们得出结论

GRANT ALL PRIVILEGES ON `Test`.* TO 'admin'@'%'

这表示您已拥有数据库Test中所有表的所有权限。但是,您无法进一步将这些权限授予其他用户(否则会有WITH GRANT OPTION)。

在安装MySQL期间,始终会创建root用户。使用它为其他帐户授予权限。

手册中的更多信息:

答案 1 :(得分:0)

运行这些语句后,尝试执行FLUSH

FLUSH PRIVILEGES;

来自MYSQL Reference Manual

  

(...)如果您直接更改授权表但忘记重新加载它们,则在重新启动服务器之前,您的更改不会生效。这可能会让您想知道为什么您的更改似乎没有任何区别!

     

要告诉服务器重新加载授权表,请执行flush-privileges操作。 (...)