连接到运行 mysql 的其他 e2c 实例

连接到运行 mysql 的其他 e2c 实例

我正在尝试建立从一个 e2c(亚马逊)实例到另一个 e2c 实例的连接。

我有:

  1. 调整安全组如下:MYSQL/Aurora TCP 3306 client-ip/32(client-ip 为我的客户端实例的文字 ip 地址)
  2. bind-address 在 my.cnf 中设置为 0.0.0.0(我花了一些精力才发现)
  3. iptables 没有运行(或者至少没有阻止任何事情)
  4. 更改安全组后我重启了服务器
  5. 请参阅以下列表以了解我的用户数据库的内容
  6. mysqld 已重新启动
  7. 每次授予后我都会刷新权限(在服务器上)

此命令工作:

root@server:~# mysql -u root -p

没有

ubuntu@client:~$ mysql -u root -p -h server-ip mysql (with the literal ip address)

但以下情况除外:

ERROR 1045 (28000): Access denied for user 'root'@'ec2-client-ip.eu-west-1.compute.amazonaws.com' (using password: YES)

输出:

select Host, User from user;

+---------------------------------------------------+------------------+
| Host                                              | User             |
+---------------------------------------------------+------------------+
| %                                                 | name             |
| 127.0.0.1                                         | root             |
| client-ip.ec2.internal                            | root             |
| client-ip                                         | phpmyadmin       |
| client-ip                                         | root             |
| ::1                                               | root             |
| ec2-client-ip.eu-west-1.compute.amazonaws.com     | phpmyadmin       |
| ec2-client-ip.eu-west-1.compute.amazonaws.com     | root             |
| ip-172-30-0-191                                   | root             |
| localhost                                         | debian-sys-maint |
| localhost                                         | liftoff          |
| localhost                                         | phpmyadmin       |
| localhost                                         | root             |
+---------------------------------------------------+------------------+

别担心,这个不是生产(完全)只是一些玩耍......

我真的不知道我在这里忽略了什么,也许这只是一些愚蠢的事情,我不知道为什么这不起作用。

telnet server-ip 3306 

给出了你期望从 mysql 服务器得到的乱码;

任何帮助大大感激……

两个实例都是 ubuntu,一个是 Ubuntu 14.04.5 LTS(带有 mysql 服务器 5.6),客户端是 Ubuntu 16.04.1 LTS,带有 mysql 客户端 5.7;我真的希望这不是问题......

答案1

好的,显然如果你使用:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'52-211-52-226.ec2.internal' WITH GRANT OPTION;

如果没有 IDENTIFIED BY 子句,则不会设置密码:

+------------------+-------------------------------------------+
| User             | Password                                  |
+------------------+-------------------------------------------+
| root             | *52906BB5BDD20058CC5D0540DF250D4CC034166F |
| root             | *52906BB5BDD20058CC5D0540DF250D4CC034166F |
| root             | *52906BB5BDD20058CC5D0540DF250D4CC034166F |
| root             | *52906BB5BDD20058CC5D0540DF250D4CC034166F |
| debian-sys-maint | *962FC5E27FD78F93284B9F0A4CE344B9748CEEFD |
| phpmyadmin       | *52906BB5BDD20058CC5D0540DF250D4CC034166F |
| liftoff          | *27EF2C2B8282406BA7B56DC96E8BE27C9988FBBB |
| phpmyadmin       |                                           |
| root             |                                           |
| phpmyadmin       |                                           |
| root             |                                           |
| name             | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root             |                                           |
| root             |                                           |
+------------------+-------------------------------------------+    

...

mysql -u root -h 52.209.36.229 -p

没有用,但是

mysql -u root -h 52.209.36.229

做过...

很抱歉浪费了你的时间 :-/

年代。

答案2

看起来你需要清除权限

mysql> flush privileges;

也就是说没有知道您授予了哪个数据库的权限。在您编写的命令中,您将默认连接到 mysql 数据库。

通常你会

mysql> grant all privileges on my_db.* to 'user'@'host' deintified by 'secret';
mysql> /* for older versions */ flush privileges
shell$ mysql -u user -p -h mysql_host my_db 

相关内容