it-swarm.com.de

Verbindungsaufbau zum Remote-MySQL-Host (Fehler 2003)

Ich habe eine MySQL-Instanz, die auf einem Debian-Server ausgeführt wird, und ich kann mich lokal problemlos damit verbinden. Ich kann jedoch keine Remote-Verbindung herstellen. Wenn ich das von meiner Befehlszeile aus versuche, erhalte ich die folgende Fehlermeldung:

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

Ich habe den Benutzer zu mysql als 'user' @ '*' und 'user' @ 'localhost' hinzugefügt. Das Überspringen von Netzwerken auf diesem Server ist auf "false" gesetzt, und die Bindungsadresse ist in my.cnf auskommentiert. Ich habe auch versucht, den Port 3306 in iptables mit dem folgenden Befehl zu öffnen:

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

Hier sind alle meine iptable Firewall-Regeln aufgelistet, die ich mit iptables -L abgerufen habe:

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

Hat jemand eine Idee wo ich von hier hingehen soll?

25
hellsgate

Basierend auf Ihrer Antwort müssen Sie feststellen, ob sich zwischen Ihnen und dem Server ein Gerät befindet, das Ihre Verbindung blockiert. Sie sollten auch sicherstellen, dass Sie unter der Ethernet-Adresse dieses Servers an 3306 telnet können. Wenn Sie am Server angemeldet sind ... Wenn nicht, haben Sie den Dienst wahrscheinlich nicht in my.cnf... an das Ethernet gebunden, siehe Parameter bind-address .

12
Mike Pennington

Sie sollten Ihre MySQL Server-Konfiguration überprüfen, um zu sehen, ob sie an 127.0.0.1 bindet, und Sie können sich nur dann mit MySQL verbinden, wenn sich Ihre App auf demselben Server befindet .. Es gibt eine einfache Möglichkeit, Webamin zu installieren und über das Web zu steuern Schnittstelle.

1
anony

Möglicherweise ist der Port 3306 geschlossen, überprüfen Sie den Status des Server-Ports

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

Wenn es geschlossen angezeigt wird, bedeutet dies, dass Sie nicht von außerhalb der Maschine darauf zugreifen können, um den Port zu öffnen

ufw - unkomplizierte Firewall

Das standardmäßige Firewall-Konfigurationstool für Ubuntu ist ufw. Im Folgenden sind einige Beispiele für die Verwendung von ufw aufgeführt:

Ufw muss zuerst aktiviert werden. Geben Sie an einer Terminal-Eingabeaufforderung Folgendes ein:

Sudo ufw enable

So öffnen Sie einen Port (mysql):

Sudo ufw allow 3306

Um den Status der Firewall anzuzeigen, geben Sie Folgendes ein:

Sudo ufw status
1
Basil Jose

für mich war dies, den Port 3306 in der /etc/default/iptables-Datei zu aktivieren, um den eingehenden Datenverkehr von einem beliebigen Host zuzulassen, indem die folgende Zeile auskommentiert wird:

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

Wenn Sie eine VPN-Verbindung verwenden, um eine Verbindung mit dem Remote-Datenbankserver herzustellen, und Sie diese Art von Fehler erhalten haben, checken Sie einfach zwei einfache Schritte aus ...

1) Gehen Sie auf einem Windows-Computer auf den Pfad "Systemsteuerung\Netzwerk und Internet\Netzwerkverbindungen", klicken Sie mit der rechten Maustaste auf das lokale Netzwerk und gehen Sie zu den Eigenschaften. Klicken Sie auf TCP/IPv4 und gehen Sie zu den Eigenschaften. Stellen Sie sicher, dass der IP- und der DNS-Server (wenn Sie DHCP verwenden oder nicht?).

2) Starten Sie danach die Maschine neu und checken Sie sie erneut aus. 

Hoffe das wird funktionieren. In meinem Fall funktioniert es.

Hinweis: Bitte stellen Sie sicher, dass alle Ihre Einstellungen korrekt sind. Diese Antwort ist lustig, aber es funktioniert in meinem Fall :)

Vielen Dank!

0
Amit Contractor