2016-11-18 133 views
1

我想在服务器上有一个简单的mysql数据库,而另一台服务器上的另一个数据库连接到它。错误1045(28000):访问被拒绝用户(使用密码:是)

我也做了以下内容:

  1. 安装了MySQL服务器
  2. 创建的数据库
  3. 创建的用户有:

    CREATE USER管理员@ 'localhost' 的IDENTIFIED BY“管理“;

  4. 由于权限与此用户:

    GRANT ALL PRIVILEGES ON confWeb *管理员@'。

  5. 开业捆扎ADRESS

现在,当我从另一台服务器启动命令mysql -u admin -p -h <address>,它只是告诉我一遍又一遍:

ERROR 1045 (28000): Access denied for user 'admin'@'X.X.X.X' (using password: YES) 

我真的不知道该怎么在这一点上做。我想我已经尝试了一切。 我试着把GRANT OPTION放在GRANT行的最后,我试着允许很多不同的地址,但是没有任何工作。

+2

您创建了一个绑定到localhost的用户,但您连接到的不是localhost的服务器。 –

回答

5

在MySQL中,用户由用户主机标识。

该用户:

[email protected] 

相同的用户

[email protected]'10.242.167.235' 

作为一个选项,你可以这样做,才允许连接:

GRANT USAGE ON *.* TO [email protected]'10.242.167.235' IDENTIFIED BY 'mysecret' ; 
    GRANT ALL ON confWeb.* TO [email protected]'10.242.167.235' ; 

对于MySQL访问权限系统,包括“通配符”,本地主机的特殊含义的讨论不再使用的IP地址,而不是主机名等

http://dev.mysql.com/doc/refman/5.7/en/privilege-system.html

+0

我认为你的答案可能对我写的内容有好处,但我试着做你说的话,但它仍然无效。 但我找到了解决方案,我会发布它。 – Licia

+0

而且它与“admin”显然不一样:https://dba.stackexchange.com/questions/191606/error-1045-28000-access-denied-for-user-myuserlocalhost-using-password – pyb

+1

@pyb:正确。一个MySQL帐户由* user *和* host *标识。根据MySQL参考手册:“*主机*名称部分的帐户名称,如果省略,默认为”%“。” https://dev.mysql.com/doc/refman/5.7/en/create-user.html因此,指定“just'admin'”与指定'admin @'%''相同。 – spencer7593

-1

我真的不知道为什么,但appareantly ,它在我使用with grant option时首先允许访问数据库,然后访问其表。 这里是我输入的命令的列表:

mysql> create user 'admin'@'localhost' identified by 'admin'; 
mysql> grant all privileges on confWeb to 'admin'@'10.69.101.%' identified by 'admin' with grant option; 
mysql> grant all privileges on confWeb.* to 'admin'@'10.69.101.%' identified by 'admin' with grant option; 
mysql> flush privileges; 

同样,我真的不知道为什么之前没有工作,我看到像所有文件的答案我已经看到,但它看起来我的问题在别的地方。

+0

''admin'@'localhost''是一个完全不同于*'admin'@'10.69.101。%''的用户。这两个用户都不会与来自“10.242.167.235”的连接“匹配”。如果从'10.242.167.235'建立了一个连接,那么这个答案中显示的语句定义的两个用户都不会有任何区别。 https://dev.mysql.com/doc/refman/5.7/en/account-names.html – spencer7593

0

使用下列步骤: -

CREATE USER 'user name'@'IP or % or localhost' IDENTIFIED BY 'password'; 

    GRANT all privileges ON *.* TO 'user name'@'IP or % or localhost' IDENTIFIED BY 'password' ; 
    flush privileges; 

在这里,在 “IP” 的地方;您使用远程服务器ip来连接服务器。您也可以使用“%”作为来自世界上任何位置的用户数据库。

现在,在格兰特选项;代替“所有权限”,您可以分别访问,如选择,更改,更新等。

相关问题