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

我试图build立从一个e2c(亚马逊)实例到另一个e2c实例的连接。

我有:

  1. 修改安全组如下:MYSQL / Aurora TCP 3306 client-ip / 32(client-ip是客户端实例的文本IP地址
  2. 在my.cnf中,bind-address被设置为0.0.0.0(这已经花了我一些努力来发现)
  3. iptables没有运行(或者至less没有阻止任何东西)
  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; 我真的希望这不是问题…

好吧,显然如果你使用:

 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 

没有…

抱歉浪费你的时间: – /

S.

看起来你需要刷新特权

 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