我在WAMP上安装了PHPMyAdmin和MySQL,然后运行。
默认情况下,PHPmyAdmin中创建了用户root
,并且未使用密码。
我使用界面登录MySQL。好的,当我通过登录详细信息时:
Datasource : dbi:mysql:foobar:localhost:3306
User Name : root
Auth :
Dbi代表数据库引擎,foobar
是表,localhost =地址和端口。
我可以访问数据库,一切正常。
好的,然后我在PHPMyAdmin中创建了一个新用户。
新用户为johnsmith
,密码为foobar
。他获得了所有权利,与根
看起来像这样:
所以在同一个界面中,我填写以下内容:
Datasource : dbi:mysql:foobar:localhost:3306
User Name : johnsmith
Auth : foobar
但对于这个用户我从mysql收到错误:
Access denied for user 'johnsmith'@'localhost' (using password: YES)
使用root
- 用户再次对其进行测试,它可以访问,但用户johnsmith
无法访问,即使他拥有所有权限和管理员权限。所以我怀疑我在PHPAdmin中缺少一个功能..
有谁可以指出我哪里出错了?这将不胜感激。
答案 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需要重新读取权限表才能看到新的更改。