Port 3306 scheint auf meinem Ubuntu-Server geschlossen zu sein

Port 3306 scheint auf meinem Ubuntu-Server geschlossen zu sein

ich habe zweiVPSServer, und beide habenMySQLinstalliert, einer zum Testen und einer für die Entwicklung. Einer meiner Server lässt mich keine Verbindung von außen herstellen. Mit dem Benutzer;

'meinTestbenutzer'@'%'

Entsprechendein offener Portfinder, Port 3306 für den betreffenden Server scheint geschlossen zu sein. Ich habe eigene C++- und Java-Programme, die auf beliebigen Ports ohne Probleme lauschen. Warum passiert das und wie kann ich es beheben?

Installiertes Ubuntu ist Ubuntu 11.10 (GNU/Linux 2.6.32-042stab072.10 x86_64)

Ergebnisse netstat -tupleauf jedem Server

Anstößiger Server

tcp        0      0 localhost.lo:submission *:*                     LISTEN      root       39967664    -

Funktionierender Server

tcp        0      0 *:mysql                 *:*                     LISTEN      mysql      1847519288  -

Antwort1

Das Problem bestand darin, dass der Server nur intern zuhörte.

bind-address 127.0.0.1Durch das Entfernen der Zeile /etc/mysql/my.cnfwurde das Problem gelöst.

Neuere Versionen von Ubuntu (≥16.04) enthalten möglicherweise diese Zeile /etc/mysql/mysql.conf.d/mysqld.cnf.

Antwort2

Wenn Sie sicher sind, dass die Ports geschlossen sind (ich finde es merkwürdig, wenn dieser Port bei einem VPS geschlossen ist), empfehle ich, die Konfigurationsdatei von MySQL so zu ändern, dass eine andere verwendet wird.

Öffnen Sie einfach die Konfigurationsdatei im Terminal sudo nano /etc/mysql/mysql.confund suchen Sie nach dem [mysqld]Abschnitt. Suchen Sie darin nach der Zeile mit dem Text port = 3306. Ändern Sie sie in einen anderen, nicht verwendeten Port und speichern Sie die Datei.

Starten Sie dann einfach entweder den VPS neu oder starten Sie den Dienst neu, etwa sudo service mysql restart.

Bitte beachten Sie: Wenn sich die Datei mysql.confnicht an dem oben genannten Ort befindet, kann sie sich an diesen anderen Orten befinden:

/etc/my.conf
/etc/my.cnf
/etc/mysql/my.conf

Und wenn der serviceBefehl nicht funktioniert, dann gehen Sie folgendermaßen vor:

sudo /etc/init.d/mysql restart

Wenn das Problem weiterhin besteht, würde ich in meinem Fall prüfeniptables(Ich würde tatsächlich alles in iptables löschen, nur um neu zu beginnen, wenn dies eine Option wäre) oder jede andere Firewall-fähige Option.

Da es sich um VPS handelt, würde ich auch im VPS-Kontrollfeld nachsehen, ob es eine Option zum Blockieren von Ports gibt.

Abgesehen davon würde ich nmapes auf dem VPS ausführen, um zu sehen, welche Ports Sie geöffnet haben. Sie müssen es von außerhalb des VPS ausführen, um zu sehen, welche Ports geöffnet wurden.

netstat -tuplenEs ist auch eine gute Idee, zu sehen, welche geöffneten Ports Sie auf dem Server haben und welche sich im LISTEN-Modus befinden.

Antwort3

Ich habe dies behoben, indem ich bind-address 127.0.0.1es in bind-address 0.0.0.0geändert habe /etc/mysql/mysql.conf.d, sodass MySQL auf allen Ports lauscht.

Außerdem habe ich ein MySQL-Benutzerkonto für die Remote-Nutzung eingerichtet. Weitere Einzelheiten finden Sie unterHost 'xxx.xx.xxx.xxx' darf keine Verbindung zu diesem MySQL-Server herstellen.

Antwort4

Es kann vorkommen, dass sich Ihre Konfiguration im Verzeichnis befindet /etc/mysql/mysql.conf.d/mysqld.cnf. Überprüfen Sie, ob dies nicht der Fall ist.

verwandte Informationen