it-swarm.com.de

MySQL kann keine Verbindung zum Remote-Server herstellen

Wir haben einen MySQL-Server in einer der entfernten virtuellen Maschinen (Windows Server 2008). Bis gestern konnten wir mithilfe der auf unserem lokalen Computer installierten Workbench eine Verbindung zum MySQL-Server herstellen.

Gestern gab es einen Neustart der Maschine, auf der die virtuelle Maschine installiert ist. Danach können wir keine Verbindung zu MySQL herstellen. Obwohl ich diese bestimmte VM per Ping und Remote verbinden kann. Ich kann sogar die Abfragen in der in der VM installierten Workbench ausführen.

Ich bin nicht besonders gut in Sachen Netzwerk oder Sicherheit. Bitte helfen Sie mir, dieses Problem zu lösen.

Error :

Ihr Verbindungsversuch ist für den Benutzer 'root' von Ihrem Host zu Server bei ABC fehlgeschlagen: 3306: Verbindung zum MySQL-Server unter 'ABC' kann nicht hergestellt werden (10060)

7
TBA

Wirklich könnte dies eine Vielzahl von möglichen Gründen sein, hoffentlich ist dies ein Anfang:

Grundnetz überprüfen

Öffnen Sie von der virtuellen MySQL-Maschine aus eine Eingabeaufforderung, und geben Sie IPCONFIG /ALL ein. Daraufhin werden alle IP-Adressen angezeigt, die an verschiedene Netzwerkadapter gebunden sind. 

Stellen Sie sicher, dass die IP-Adresse, mit der Sie verbunden sind, dort aufgeführt ist. Die virtuelle Maschine hat möglicherweise eine neue IP-Adresse vom DHCP-Server und keine statische IP-Adresse nach dem Neustart.

Hostname vs IP

Sie sollten die Auflösung des Hostnamens überprüfen. Aufgrund Ihres zitierten Fehlers würde dies bedeuten, dass Sie eine Verbindung zu einem Hostnamen und nicht zu einer Server-IP herstellen. Überprüfen Sie, ob der Computer mit der richtigen IP-Adresse in den Hostnamen aufgelöst werden kann. Es kann auch sinnvoll sein, den Hostnamen für die tatsächliche IP-Adresse des Servers in der Verbindungszeichenfolge zu ändern.

MySQL-Konfigurationsdatei

Sie haben gesagt, Sie betreiben MySQL unter Windows. Es war üblich, my.cnf in my.ini umzubenennen. Die Konfigurationsdatei für ältere Versionen von MySQL vor 4.1.5 wurde normalerweise in c:\my.ini oder c:\windows\my.ini gespeichert. Bei nachfolgenden Versionen ist das Standardverzeichnis normalerweise %PROGRAMDATA%\MySQL\MySQL Server xxx.

Wenn Sie die Konfigurationsdatei gefunden haben, öffnen Sie sie in Notepad (oder einem ähnlichen Texteditor), suchen Sie den Abschnitt [mysqld] und stellen Sie sicher, dass port= den Port, zu dem Sie eine Verbindung herstellen möchten, und bind-address= die IP-Adresse, zu der Sie eine Verbindung herstellen möchten.

Serverports

Öffnen Sie vom virtuellen MySQL-Server aus eine Eingabeaufforderung, und geben Sie netstat –ano ein. Daraufhin wird eine Liste der Prozesse und der IP-Ports/Ports angezeigt, die sie überwachen. Der MySQL-Server sollte hier aufgeführt sein und über denselben Port und dieselbe IP-Adresse überwachen, die die Konfigurationsdatei definiert.

Windows-Firewall

Sie sollten über eine Firewall-Regel verfügen, um MySQL zuzulassen. Folgendes wird am Standardport von 3306 hinzugefügt

netsh advfirewall firewall add rule name="MySQL Server" action=allow protocol=TCP dir=in localport=3306

Identifizieren Sie, ob dies maschinenspezifisch ist

Sie können die MySQL Workbench-Anwendung auf einer anderen Arbeitsstation einrichten und versuchen, eine Verbindung herzustellen, um festzustellen, ob es sich hierbei um ein globales Problem oder nur um ein Problem handelt, das mit Ihrer jeweiligen Arbeitsstation zusammenhängt.

22
Steve

der MySQL-Administrator Ihrer Datenbank sollte eine Remote-Verbindung zum MySQL-Server zulassen. ändere das in my.cnf:

bind-address    = 127.0.0.1 # this shoul be your mysql server ip

und kommentiere dies:

# skip-networking
9
Volkan Ulukut

Möglicherweise wurde Ihre Konfiguration für eine IP-Adresse eingerichtet, die sich geändert hat. Standardmäßig erlaubt mysql keine Verbindung von entfernten Hosts, es sei denn, Sie geben explizit Berechtigungen für einen bestimmten Benutzer in einem bestimmten Schema oder einer Gruppe von Schemas an. Wenn Sie beispielsweise Folgendes tun:

GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

Vielleicht haben Sie tatsächlich die Erlaubnis auf Ihre eigene IP-Adresse gesetzt, d. H. Auf die Adresse Ihres lokalen Computers. Wenn Ihr lokaler Computer (nicht der Remote-Server) seine IP-Adresse geändert hat, können Sie sich bei mysql nicht anmelden, es sei denn Sie haben die IP-Adresse "1.2.3.4", die Sie offensichtlich nicht mehr besitzen, wenn Sie eine dynamische IP-Adresse haben (üblich bei DSL-/Kabelverbindungen).

Verbinden Sie sich also über SSH oder Telnet oder was auch immer Sie mit Ihrem Windows-Server und gehen Sie als root zu mysql:

SELECT * from information_schema.user_privileges;

Das zeigt Ihnen die Berechtigungen für alle Benutzer und wie sie sich verbinden dürfen. Wenn Ihre lokale IP-Adresse dort nicht aufgeführt ist oder ein Platzhalter (mit dem Sie von einem beliebigen Remotecomputer aus eine Verbindung zum Server herstellen können), müssen Sie sie wie folgt einrichten:

GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

Wo ist USERNAME natürlich Ihr Benutzer. Nach dem Ein gibt es einen Platzhalter/Punkt/Platzhalter, der bedeutet, dass dieser Benutzer eine Verbindung zu einem beliebigen Schema (Datenbank, für MySQL) von jedem Benutzer aus einem beliebigen Netzwerk herstellen kann. Ich würde jedoch empfehlen, dass Sie nur den Zuschuss für den Benutzer für das bestimmte Schema gewähren, zu dem Sie eine Verbindung herstellen müssen.

Danach, wenn Sie tatsächlich die richtigen Informationen hatten und immer noch keine Verbindung herstellen können, verwenden Sie einen Portscanner wie nmap oder ähnliches, um einen Port-Scan durchzuführen und zu prüfen, ob mysql:

  1. Öffnen Sie das externe Netzwerk und hören Sie es
  2. Läuft auf dem Port, über den Sie tatsächlich eine Verbindung herstellen möchten

Wenn 1 wahr ist, dann prüfen Sie 2, da der Port möglicherweise falsch konfiguriert ist. Wenn jedoch einer dieser beiden Punkte funktioniert, klingt dies definitiv nicht nach einer Netzwerkkonfiguration, sondern nach einer Benutzereinstellung oder etwas anderem.

6
Gustavo Rubio

Haben Sie versucht, zu überprüfen, ob jemand Ihrem angegebenen Port Sicherheit hinzugefügt hat, z. B. 3306.

2
zeeshan
GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'password';

dieser Befehl sollte den Trick für alle Benutzer erfüllen. @Gustavo Rubio hat bereits die richtige Erklärung gegeben.

Um sicherzustellen, welche Ports geöffnet sind, führen Sie cmd in der virtuellen Maschine aus und geben Sie Folgendes ein.

netstat -a

TCP    127.0.0.1:3360     Hostname:3360   LISTENING

Die my.cnf befindet sich unter Mysql-Installationspfad\MySQL\MySQL Server xxx. Stellen Sie sicher, dass Sie das Original sichern, bevor Sie es ändern

Ich kann keine Verbindung zum [lokalen] MySQL-Server herstellen

Testen der MySQL Server-Installation unter Microsoft Windows

MySQL Workbench: Verwalten von MySQL auf Windows-Servern auf Windows-Weise

1
XXX

Zum ersten Mal müssen Sie testen und sicherstellen, dass Ihre Verbindung zu mysql nicht von der Firewall blockiert wird.

Führen Sie die folgenden Schritte für jeden Host aus, um die Firewall auf jedem Host in Ihrem Cluster zu deaktivieren.

1. Speichern Sie den vorhandenen iptables-Regelsatz.

iptables-save > /root/firewall.rules

2. iptables deaktivieren.

Für RHEL, CentOS, Oracle und Debian:

chkconfig iptables off

und

/etc/init.d/iptables stop

Für SLES:

chkconfig SuSEfirewall2_setup off

und

rcSuSEfirewall2 stop

Für Ubuntu:

service ufw stop

https://www.cloudera.com/documentation/enterprise/5-7-x/themen/install_cdh_disable_iptables.html

0
Adam Endvy

Abhängig von Ihrem Setup, aber wenn Sie cPanel verwenden, gehen Sie einfach zu RemoteMYSQL und geben Sie Ihren Host ein. Sie können auch einen Platzhalter verwenden. Unten arbeitete für mich, als ich den Fehler bekam 

Msgstr "Konnte keine Verbindung zum DB - Server '' als Benutzer ''. Port: Host '' ist nicht Zur Verbindung mit diesem MySQL Server erlaubt

 cPanel setup to allow remote mysql connection

0
Robert Sinclair