尝试授予权限时,用户对数据库的访问被拒绝
Access denied for user on database when trying to grant permissions
我可以毫无问题地连接到我的数据库,我已经设置了一个具有密码的用户,该用户具有 *.*
上的所有权限,包括授予选项。
当我执行以下命令时:
SHOW GRANTS FOR 'myuser'@'myip';
我得到:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'myip' WITH GRANT OPTION
然而,当我尝试以下操作时:
CREATE SCHEMA test;
GRANT ALL ON test.* to 'testacc' identified by 'asdfasdf';
我得到 Access denied for user 'myuser'@'myip' to database 'test'
,但可以成功创建架构 test
。
唯一可行的方法是在我的服务器上以 root
的身份直接执行此操作(如 localhost
)。
我已经尝试删除帐户、granting/ungranting 权限并刷新它们。似乎没有任何效果,我也不知道为什么。
运行 在:
- Ubuntu 16.04 LTS
- mysql Ver 14.14 Distrib 5.7.17,用于 Linux (x86_64) 使用 EditLine wrapper
想通了..
SELECT USER();
& SELECT CURRENT_USER();
不一样。
我似乎试图通过与我实际验证的 IP 不同的 IP 登录。例如,我试图以 ip1283.some-random-url.com
身份登录,但我被验证为 x.x.x.x
(或者反过来,我不记得了,一切都进行得太快了:P)。
我添加了第一个 IP(奇怪的 IP)并删除了另一个,建立了一个新的数据库连接并且一切正常。很奇怪。
如果有人能解释原因,那就太好了!
我可以毫无问题地连接到我的数据库,我已经设置了一个具有密码的用户,该用户具有 *.*
上的所有权限,包括授予选项。
当我执行以下命令时:
SHOW GRANTS FOR 'myuser'@'myip';
我得到:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'myip' WITH GRANT OPTION
然而,当我尝试以下操作时:
CREATE SCHEMA test;
GRANT ALL ON test.* to 'testacc' identified by 'asdfasdf';
我得到 Access denied for user 'myuser'@'myip' to database 'test'
,但可以成功创建架构 test
。
唯一可行的方法是在我的服务器上以 root
的身份直接执行此操作(如 localhost
)。
我已经尝试删除帐户、granting/ungranting 权限并刷新它们。似乎没有任何效果,我也不知道为什么。
运行 在:
- Ubuntu 16.04 LTS
- mysql Ver 14.14 Distrib 5.7.17,用于 Linux (x86_64) 使用 EditLine wrapper
想通了..
SELECT USER();
& SELECT CURRENT_USER();
不一样。
我似乎试图通过与我实际验证的 IP 不同的 IP 登录。例如,我试图以 ip1283.some-random-url.com
身份登录,但我被验证为 x.x.x.x
(或者反过来,我不记得了,一切都进行得太快了:P)。
我添加了第一个 IP(奇怪的 IP)并删除了另一个,建立了一个新的数据库连接并且一切正常。很奇怪。
如果有人能解释原因,那就太好了!