Ich habe zwei VPS- Server und beide haben MySQL installiert, einen zum Testen und einen für die Entwicklung. Auf einem meiner Server kann ich keine Verbindung von außen herstellen. Mit dem Benutzer;
'mytestuser' @ '%'
Laut einem Open Port Finder scheint Port 3306 für den betreffenden Server geschlossen zu sein. Ich habe eigene C ++ - und Java-Programme, die problemlos auf beliebigen Ports lauschen. Warum passiert das und wie kann ich es beheben?
Ubuntu installiert ist Ubuntu 11.10 (GNU / Linux 2.6.32-042stab072.10 x86_64)
Ergebnisse von netstat -tuple
auf jedem Server
Beleidigender Server
tcp 0 0 localhost.lo:submission *:* LISTEN root 39967664 -
Arbeitsserver
tcp 0 0 *:mysql *:* LISTEN mysql 1847519288 -
/etc/mysql/my.cnf
nicht ist/etc/mysql/my.conf
.Mein Vorschlag, wenn Sie sicher sind, dass die Ports geschlossen sind (ich finde es seltsam, dass ein VPS diesen Port geschlossen hat), ist, die Konfigurationsdatei von MySQL so zu ändern, dass eine andere verwendet wird.
Öffnen Sie einfach die Konfigurationsdatei im Terminal
sudo nano /etc/mysql/mysql.conf
und suchen Sie den[mysqld]
Abschnitt. Suchen Sie darin nach der Zeile, die lautetport = 3306
. Ändern Sie ihn in einen anderen nicht verwendeten Port und speichern Sie die Datei.Dann einfach entweder den VPS neu starten oder den Dienst wie neu starten
sudo service mysql restart
.Zu beachten ist, dass die Datei, wenn sie
mysql.conf
sich nicht in der oben genannten befindet, sich an folgenden Stellen befinden kann:Und wenn der
service
Befehl nicht funktioniert, dann tun Sie dies:Wenn das Problem weiterhin besteht, würde ich in meinem Fall iptables überprüfen (ich würde tatsächlich alles in iptables löschen, nur um neu zu starten, wenn dies eine Option sein könnte) oder jede andere Firewall-fähige Option.
Da es sich um VPS handelt, überprüfe ich auch die VPS-Systemsteuerung, um festzustellen, ob eine Option zum Blockieren von Ports verfügbar ist.
Abgesehen davon würde ich
nmap
auf dem VPS laufen, 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 sie geöffnet haben.netstat -tuplen
Es ist auch eine gute Idee zu sehen, welche Ports auf dem Server geöffnet sind und welche sich im LISTEN-Modus befinden.quelle
Ich habe dies behoben, indem ich
bind-address 127.0.0.1
zubind-address 0.0.0.0
in/etc/mysql/mysql.conf.d
geändert habe (so dass MySQL alle Ports überwacht).Außerdem habe ich ein MySQL-Benutzerkonto für die Remoteverwendung eingerichtet (siehe https://stackoverflow.com/a/24171107/132374 ).
quelle
Ich benutze diese Methode:
Keine Notwendigkeit, andere Konfigurationsdateien zu ändern, und keine zusätzlichen Ports, die standardmäßig geöffnet sind.
quelle
sudo ufw allow 3306/tcp
Ich habe versucht, zu bearbeiten, ließ mich aber nichtEs kann vorkommen, dass sich Ihre Konfiguration im Verzeichnis
/etc/mysql/mysql.conf.d/mysqld.cnf
befindet. Überprüfen Sie, ob dies nicht der Fall ist.quelle