it-swarm-eu.dev

Próba połączenia ze zdalnym hostem MySQL (błąd 2003)

Mam instancję MySQL działającą na serwerze Debiana i mogę się z nią połączyć lokalnie bez żadnych problemów. Nie mogę jednak połączyć się z nim zdalnie. Kiedy próbuję tego z mojego wiersza poleceń, otrzymuję następujący błąd:

ERROR 2003 (HY000): Can't connect to MySQL server on '<server-ip>' (110)

Dodałem użytkownika do mysql jako 'user' @ '*' i 'user' @ 'localhost'. pominięcie sieci na tym serwerze jest ustawione na false, a adres powiązania jest komentowany w my.cnf. Próbowałem także otworzyć port 3306 w iptables, używając następującej komendy:

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

Oto lista wszystkich moich reguł zapory ogniowej iptable, które pobrałem za pomocą iptables -L:

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
REJECT     tcp  --  anywhere             anywhere            tcp dpt:auth reject-with icmp-port-unreachable 
ACCEPT     icmp --  anywhere             anywhere            icmp type 8 code 0 state NEW,RELATED,ESTABLISHED,UNTRACKED 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     tcp  --  anywhere             anywhere            tcp spts:1024:65535 dpt:ftp state NEW 
ACCEPT     tcp  --  anywhere             anywhere            tcp spts:1024:65535 dpt:ssh state NEW 
ACCEPT     tcp  --  anywhere             anywhere            tcp spts:1024:65535 dpt:www state NEW 
ACCEPT     tcp  --  <my-server>          anywhere            tcp spts:1024:65535 dpt:mysql state NEW 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpts:49152:65534 state NEW 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:mysql 
LOG        all  --  anywhere             anywhere            limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: ' 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:mysql 
LOG        tcp  --  anywhere             anywhere            tcp dpt:mysql LOG level debug 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Czy ktoś ma jakieś pojęcie, gdzie powinienem się stąd udać?

25
hellsgate

W oparciu o Twoją odpowiedź musisz sprawdzić, czy istnieje urządzenie między Tobą a serwerem, który blokuje Twoje połączenie. Powinieneś również upewnić się, że możesz telnetować się do 3306 na adresie ethernetowym tego serwera po zalogowaniu do serwera ... jeśli nie, prawdopodobnie nie masz usługi związanej z siecią Ethernet w my.cnf... zobacz parametr bind-address .

12
Mike Pennington

Powinieneś sprawdzić konfigurację serwera MySQL, aby sprawdzić, czy jest on powiązany z 127.0.0.1, wtedy możesz połączyć się tylko z mysql, jeśli twoja aplikacja jest na tym samym serwerze ..__ Jest łatwy sposób, aby zainstalować webaminę i możesz kontrolować przez sieć berło.

1
anony

Może to być spowodowane zamknięciem portu 3306, sprawdź stan portu serwera

http://www.yougetsignal.com/tools/open-ports/

Jeśli pokazuje zamknięty, oznacza to, że nie można uzyskać do niego dostępu z zewnątrz maszyny, aby otworzyć port

ufw - Uncomplicated Firewall

Domyślnym narzędziem konfiguracji zapory dla Ubuntu jest ufw. Oto kilka przykładów użycia ufw:

Po pierwsze, ufw musi być włączone. Z terminala Podpisz:

Sudo ufw enable

Aby otworzyć port (mysql):

Sudo ufw allow 3306

Aby zobaczyć stan zapory, wprowadź:

Sudo ufw status
1
Basil Jose

dla mnie było to, aby umożliwić port 3306 w pliku /etc/default/iptables, aby zezwolić na ruch przychodzący z dowolnego hosta przez usunięcie komentarza z poniższej linii:

#-A INPUT -p tcp --dport 3306 -j ACCEPT
0
Nasir Mahmood

Jeśli używasz połączenia VPN, aby połączyć zdalny serwer bazy danych i masz tego rodzaju błąd, po prostu sprawdź dwa proste kroki ...

1) W komputerze z systemem Windows przejdź do ścieżki „Panel sterowania Sieć i Internet Połączenia sieciowe” i kliknij prawym przyciskiem myszy na sieć lokalną i przejdź do właściwości. Kliknij TCP/IPv4 i przejdź do właściwości. Upewnij się, że IP i serwer DNS (jeśli używasz DHCP lub nie?).

2) Następnie uruchom ponownie komputer i sprawdź go ponownie. 

Mam nadzieję, że to zadziała. W moim przypadku działa.

Uwaga: upewnij się, że wszystkie ustawienia są poprawne. Ta odpowiedź jest zabawna, ale działa w moim przypadku :)

Dzięki!

0
Amit Contractor