Mysql 允许 root 用户访问,但拒绝具有 root 用户所有权限的用户访问
Mysql allows access for root user, but acces is denied for user with all privileges as root user
我在 WAMP 上安装了 PHPMyAdmin 和 MySQL,并且 运行。
用户 root
是在 PHPmyAdmin 中默认创建的,没有使用密码。
我用一个界面登录MySQL。好的,当我传递登录详细信息时:
Datasource : dbi:mysql:foobar:localhost:3306
User Name : root
Auth :
Dbi 代表数据库引擎,foobar
是table,localhost = 地址和端口。
我可以访问数据库,一切正常。
好的,那我在 PHPMyAdmin 中创建一个新用户。
新用户是 johnsmith
,密码是 foobar
。他获得所有权限,和root一样
看起来像这样:
所以在同一个界面中,我填写以下内容:
Datasource : dbi:mysql:foobar:localhost:3306
User Name : johnsmith
Auth : foobar
但是对于这个用户,我从 mysql:
得到一个错误
Access denied for user 'johnsmith'@'localhost' (using password: YES)
用 root
-user 再次测试,它获得访问权限,但用户 johnsmith
没有访问权限,即使他拥有所有权限和管理员权限。所以我怀疑我缺少 PHPAdmin 中的一个功能..
谁能指出我哪里出错了?这将不胜感激。
您在创建用户后是否进行了 'FLUSH PRIVILEGES' 操作?
MySQL 需要重新阅读权限 table 才能看到新的更改。
运行这个:
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
才能生效。
我在 WAMP 上安装了 PHPMyAdmin 和 MySQL,并且 运行。
用户 root
是在 PHPmyAdmin 中默认创建的,没有使用密码。
我用一个界面登录MySQL。好的,当我传递登录详细信息时:
Datasource : dbi:mysql:foobar:localhost:3306
User Name : root
Auth :
Dbi 代表数据库引擎,foobar
是table,localhost = 地址和端口。
我可以访问数据库,一切正常。
好的,那我在 PHPMyAdmin 中创建一个新用户。
新用户是 johnsmith
,密码是 foobar
。他获得所有权限,和root一样
看起来像这样:
所以在同一个界面中,我填写以下内容:
Datasource : dbi:mysql:foobar:localhost:3306
User Name : johnsmith
Auth : foobar
但是对于这个用户,我从 mysql:
得到一个错误 Access denied for user 'johnsmith'@'localhost' (using password: YES)
用 root
-user 再次测试,它获得访问权限,但用户 johnsmith
没有访问权限,即使他拥有所有权限和管理员权限。所以我怀疑我缺少 PHPAdmin 中的一个功能..
谁能指出我哪里出错了?这将不胜感激。
您在创建用户后是否进行了 'FLUSH PRIVILEGES' 操作? MySQL 需要重新阅读权限 table 才能看到新的更改。
运行这个:
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
才能生效。