2

我正在尝试在服务器上拥有一个简单的 mysql 数据库,并在连接到它的另一台服务器上拥有另一个数据库。

我做了以下事情:

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

    创建用户 admin@'localhost' 由 'admin' 识别;

  4. 赋予此用户的权限:

    将 confWeb.* 上的所有权限授予 admin@'';

  5. 打开绑定地址

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

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

我现在真的不知道该怎么办。我想我什么都试过了。我尝试GRANT OPTION在 GRANT 行的末尾添加,我尝试允许很多不同的地址,但没有任何效果。

4

3 回答 3

6

在 MySQL 中,用户由userhost标识。

该用户:

 admin@localhost

不是一个用户

 admin@'10.242.167.235'

作为一种选择,您可以这样做以允许连接:

  GRANT USAGE ON *.* TO admin@'10.242.167.235' IDENTIFIED BY 'mysecret' ;
  GRANT ALL ON confWeb.* TO admin@'10.242.167.235' ;

有关 MySQL 访问权限系统的更长讨论,包括“通配符”、localhost 的特殊含义、使用 IP 地址而不是主机名等。

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

于 2016-11-18T15:36:28.377 回答
1

我真的不知道为什么,但显然,当我使用with grant optionand 首先访问数据库,然后访问它的表时,它起作用了。这是我输入的命令列表:

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;

同样,我真的不知道为什么它以前不起作用,我看到的答案看起来就像我看到的所有文档,但看起来我的问题出在其他地方。

于 2016-11-21T08:22:31.653 回答
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。您还可以使用“%”来获取来自世界上任何 plcae 的使用数据库。

现在,在授予选项中;在“所有权限”的位置,您可以单独授予访问权限,例如选择、更改、更新等。

于 2017-11-09T03:58:31.660 回答