在我网站的控制面板中,我创建了一个新的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的查询中进行此操作?
答案 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;
(...)如果您直接更改授权表但忘记重新加载它们,则在重新启动服务器之前,您的更改不会生效。这可能会让您想知道为什么您的更改似乎没有任何区别!
要告诉服务器重新加载授权表,请执行flush-privileges操作。 (...)