Mysql允许root用户访问,但对具有root用户所有权限的用户拒绝访问

时间:2015-08-13 21:27:24

标签: php mysql phpmyadmin

我在WAMP上安装了PHPMyAdmin和MySQL,然后运行。

默认情况下,PHPmyAdmin中创建了用户root,并且未使用密码。

我使用界面登录MySQL。好的,当我通过登录详细信息时:

Datasource : dbi:mysql:foobar:localhost:3306 
 User Name : root
     Auth  : 

Dbi代表数据库引擎,foobar是表,localhost =地址和端口。 我可以访问数据库,一切正常。

好的,然后我在PHPMyAdmin中创建了一个新用户。

新用户为johnsmith,密码为foobar。他获得了所有权利,与根

相同

看起来像这样:

enter image description here

所以在同一个界面中,我填写以下内容:

 Datasource : dbi:mysql:foobar:localhost:3306 
 User Name  : johnsmith
 Auth       : foobar

但对于这个用户我从mysql收到错误:

 Access denied for user 'johnsmith'@'localhost' (using password: YES)

使用root - 用户再次对其进行测试,它可以访问,但用户johnsmith无法访问,即使他拥有所有权限和管理员权限。所以我怀疑我在PHPAdmin中缺少一个功能..

有谁可以指出我哪里出错了?这将不胜感激。

2 个答案:

答案 0 :(得分:2)

运行:

CREATE USER 'johnsmith'@'localhost' IDENTIFIED BY 'foobar';
GRANT ALL PRIVILEGES ON *.* TO 'johnsmith'@'localhost' WITH GRANT OPTION;
CREATE USER 'johnsmith'@'%' IDENTIFIED BY 'foobar';
GRANT ALL PRIVILEGES ON *.* TO 'johnsmith'@'%' WITH GRANT OPTION;
CREATE USER 'johnsmith'@'127.0.0.1' IDENTIFIED BY 'foobar';
GRANT ALL PRIVILEGES ON *.* TO 'johnsmith'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;

无论出于何种原因localhost的处理方式与其他原因不同,%通配符似乎不适用于它。然后你必须FLUSH PRIVILEGES才能生效。

答案 1 :(得分:1)

你做了一个' FLUSH PRIVILEGES'你创建用户后? MySQL需要重新读取权限表才能看到新的更改。