sql >> Databáze >  >> RDS >> Mysql

1130 Hostitel 'amazon-ec2-ip' se nemůže připojit k tomuto serveru MySQL

Po odeslání tohoto problému, když jsem pracoval, jsem si uvědomil, že jsem nebyl schopen ani ping na server EC2 nebo telnet na něj. Něco základního tedy muselo být špatně. Nakonec mi s problémem pomohl kamarád. Jak jsem očekával, problém byl velmi specifický pro EC2.

Podrobnosti jsou následující:

Když vytvoříme instanci EC2, získáme externí IP adresu, která je podobná:ec2-XX-XXX-XXX-XX.ap-southeast-1.compute.amazonaws.com

Při nastavování oprávnění v mysql jsem uděloval oprávnění výše uvedené IP adrese, tj.:

GRANT ALL PRIVILEGES on . to [email protected]'ec2-XX-XXX-XXX-XX.ap-southeast1.compute.amazonaws.com' IDENTIFIED BY 'password';

Při pokusu o komunikaci s instancí EC2 z jiné místní instance EC2 to nefunguje. K tomu musíte zadat „interní IP adresu“ instance EC2, kterou lze nalézt pomocí příkazu ip:

ip a:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host 
valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 12:31:41:02:58:47 brd ff:ff:ff:ff:ff:ff
inet **XX.XX.XX.XXX/23** brd YY.YYY.YY.YYY scope global eth0
inet6 fe80::1031:41ff:fe02:5847/64 scope link 
valid_lft forever preferred_lft forever

Aby věci fungovaly správně, musíte udělit oprávnění k IP adrese --"XX.XXX.XX.XXX/23" a mělo by to fungovat. Podobně při připojování k databázi „mysql“ by název hostitele poskytnutý příkazu mysql měl být také „interní IP adresou“ hostitelské instance EC2.



  1. ETL vs ELT:Posuzujeme, vy soudce

  2. MySQL UPDATE s SELECT SUM z jiné tabulky

  3. newid() uvnitř funkce serveru SQL

  4. Oracle:Existuje způsob, jak získat nedávné chyby syntaxe SQL?