Ich erhalte eine Fehlermeldung:
"Verbindung zum MySQL-Server beim Lesen des ersten Kommunikationspakets unterbrochen, Systemfehler: 0"
während ich meine db verbinden werde.
Wenn ich localhost benutze, funktioniert alles einwandfrei. Wenn ich jedoch meine Live-IP-Adresse wie unten verwende, wird folgende Fehlermeldung angezeigt:
mysql_connect("202.131.xxx.106:xxxx", "xxxx", "xxxxx") or die(mysql_error());
Öffnen Sie die MySQL-Konfigurationsdatei mit dem Namen my.cnf und versuchen Sie, die "Bindungsadresse" zu finden. Ersetzen Sie hier die Einstellung (127.0.0.1 ODER localhost) durch Ihre Live-Server-IP (die IP, die Sie in der Funktion mysql_connect verwenden).
Dies wird das Problem definitiv lösen.
Vielen Dank
quelle
127.0.0.1
sodass ein direkter Zugriff von anderen Hosts nicht möglich ist. Dies verhindert Remote-Brute-Force-Angriffe und stellt dem Netzwerk keine möglichen Sicherheitsprobleme zur Verfügung. Wenn sich Ihre Anwendung auf demselben Computer befindet (was ein sehr verbreitetes Hosting-Setup ist), verwenden Sie127.0.0.1
resp.localhost
als MySQL-Host und es funktioniert genauso wie das Binden des Dienstes an Ihre externe Schnittstelle und das Verwenden dieses als MySQL-Host. Wenn sich Ihre Anwendung an einem anderen Ort befindet, verwenden Sie nach Möglichkeit ein internes Netzwerk.1) Remoteverbindung mit MySQL zulassen. Datei bearbeiten:
Kommentarzeile:
Starten Sie MySQL neu:
2) Erstellen Sie einen Benutzer für die Remoteverbindung.
3) In meinem Fall muss ich mit Ubuntu eine Remoteverbindung von Windows zu VirtualBox herstellen. Also muss ich Port 3306 in iptables zulassen:
quelle
FLUSH PRIVILEGES
nach dem Erstellen eines neuen Benutzers.Hatte dieses Problem beim Einrichten eines neuen Slave-Servers. Es wurde festgestellt, dass die IP-Adresse des Slave-Servers in der Master-Server-
/etc/hosts.allow
Datei fehlte . Die IP-Adresse wurde hinzugefügt und ich konnte eine Verbindung zum Master-Server herstellen.Beachten Sie, dass ich den Zugriff verwende
hosts.allow
undhosts.deny
kontrolliere.quelle
allow
wann seindeny
mussALL: ALL
...Ich hatte dieses Problem und es endete damit, dass der vorherige Systemadministrator den Port geändert hat, auf dem MySQL ausgeführt wurde. MySQL Workbench hat versucht, eine Verbindung zum Standard 3306 herzustellen, aber der Server wurde auf 20300 ausgeführt.
quelle
Das Problem in meinem Fall war, dass MySQL nur unter Linux an lo gebunden wurde. Um das Problem zu lösen, habe ich die my.cnf (gefunden unter /etc/mysql/my.cnf) bearbeitet und die Zeile bind-address = 127.0.0.1 entfernt
Dadurch kann MySQL an jede Netzwerkschnittstelle gebunden werden
quelle
Dieser Fehler ist mir beim Versuch aufgetreten, mit MySQL Workbench 6.3 eine Verbindung zu Google Cloud SQL herzustellen.
Nach ein wenig Recherche stellte ich fest, dass meine IP-Adresse vom Internetprovider geändert wurde und er nicht in Cloud SQL zugelassen wurde.
Ich autorisierte es und machte mich wieder an die Arbeit.
quelle
Bei der Verbindung von der MySQL-Workbench ist genau derselbe Fehler aufgetreten. Hier ist, wie ich es behoben habe. In meiner Konfigurationsdatei /etc/my.cnf wurde der Wert für die Bindeadresse auf die IP-Adresse des Servers festgelegt. Dies musste durchgeführt werden, um die Replikation einzurichten. Wie auch immer, ich habe es gelöst, indem ich zwei Dinge getan habe:
z.B
quelle
Das Problem für mich war, dass DNS-Abfragen von der FW innerhalb des Subnetzes blockiert wurden. Die Lösung bestand darin, DNS-Lookups in MySQL zu deaktivieren.
quelle
Ich habe gerade MySQL auf einer Windows-Box eingerichtet. Beim Versuch, eine Verbindung mit dem Navicat MySql-Client auf derselben Box herzustellen, wurde der OP-Fehler angezeigt. Ich musste 127.0.0.1 als Host angeben, und das hat es geschafft.
localhost oder die tatsächliche IP-Adresse des Servers funktionierten nicht.
quelle
Der Fehler bedeutet, dass er keine Antwort von dem Port erhalten hat, an dem der Server erwartet wurde. Die Ursachen reichen von der Kontaktaufnahme mit dem falschen Computer (aus einer Reihe von Gründen) bis hin zum Server, der sich nicht am erwarteten Port befindet.
Überprüfen Sie in /etc/mysql/my.cnf, an welchen Port Ihr Server gebunden ist. Entspricht das dem, was in Ihrer connect-Anweisung steht? Wenn sie übereinstimmen, versuchen Sie, über den Server selbst und über die Befehlszeile des Computers, auf dem Sie den Client ausführen, eine Verbindung mit MySQL herzustellen. Wenn es an einem Ort und nicht an einem anderen funktioniert, liegt möglicherweise ein Problem mit der Firewall- / Routerkonfiguration vor.
quelle
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61)
, nicht dieLost connection to MySQL server
Nachricht.In meinem Fall hatte ich ALL: ALL in hosts.deny. Ändern Sie dies in ALL: PARANOID hat mein Problem beim Verbinden über ssh gelöst
quelle
Das Problem war ziemlich dumm für mich.
Ich hatte das gleiche Problem auf dem AWS EC2 Ubuntu-Computer (MariaDB ist derzeit lokal installiert), also habe ich versucht, SSH-Tunneling durchzuführen, und hatte das gleiche Problem. Also habe ich versucht, Tunnel über Terminal zu ssh:
Und es sagte mir Folgendes:
Ich habe den ssh-Benutzer von root auf ubuntu geändert, genau wie meine ssh-Konfiguration, und die Verbindung ist einwandfrei.
Überprüfen Sie also Ihren SSH-Verbindungsbenutzer.
Ich habe das beaufsichtigt, also auch diese halbe Stunde meiner Zeit, also hoffe ich, dass dies für Sie nützlich sein wird.
quelle
Für mich wurde die Konfigurationsdatei "/etc/mysql/mysql.conf.d/mysqld.cnf" gefunden. Das Auskommentieren der Bindungsadresse hat den Trick getan.
Wie wir hier sehen können: Anstatt das Netzwerk zu überspringen, wird jetzt standardmäßig nur noch localhost abgehört, das kompatibler und nicht weniger sicher ist.
quelle
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
und stattdessenbind-address = 111.112.113.114
verwendetbind-address = 127.0.0.1
. Die SSH-Tunneleinstellungen werden wie unter hostpresto.com/community/tutorials/… beschrieben festgelegt. Gute Arbeit! Vielen Dank!Ist auf dasselbe Problem gestoßen, Adresse ohne Erfolg hin und her binden. Die Lösung für mich war das Löschen von Berechtigungen .
quelle
Für mich Einstellung
bind-address = 0.0.0.0
inmysql/my.cnf
gearbeitet. Grundsätzlich werden dann alle Adressen (aber immer noch ein Port) abgehört.Und vergessen Sie nicht, Ihren Server neu zu starten:
systemctl restart mysql
quelle
Ich hatte nur das gleiche Problem, aber in meinem Fall habe ich es mit gelöst
quelle
Noch ein Grund ...
Ich bin auf einen Ubuntu-Server gestoßen, auf dem alles angepasst wurde und wegen des gleichen Fehlers keine Verbindung hergestellt werden konnte.
Diese Einstellung war drinnen
/etc/ssh/sshd_config
Nach dem Einbiegen in
Ich konnte eine Remoteverbindung mit meiner MySQL-Datenbank herstellen
quelle
Ich versuche, meinen DB Docker Container unter Ubuntu 18.04 zu verbinden, das gleiche Problem.
Überprüfen Sie zuerst Ihr Gerät durch Ausführen,
nmcli dev
um festzustellen, ob das Gerätdocker0
angeschlossen ist.Wenn keine Verbindung besteht, versuchen Sie, den Docker-Dienst neu zu starten:
sudo service docker restart
quelle
In meinem Fall war es der WLAN-Sperrport 3306 der Universität. Ich konnte über einen mobilen Hotspot eine Verbindung herstellen.
Wechseln Sie zu einem mobilen Hotspot oder einem anderen Netzwerk. Wenn es dort funktioniert, wissen Sie, dass das ursprüngliche Netzwerk Port 3306 blockiert. Wenn in mehr als einem Netzwerk derselbe Fehler auftritt, wissen Sie, dass er für Ihren Computer spezifisch ist.
quelle
Firewalld
blockiert die IP-Adresse. Verwenden Sie die folgenden Befehle, um Zugriff zu gewähren:firewall-cmd --permanent --zone = vertrauenswürdig --add-source = YOUR_IP / 32
firewall-cmd --permanent --zone = vertrauenswürdig --add-port = 3306 / tcp
firewall-cmd --reload
quelle
Bei der Remoteverbindung mit MySQL wurde der Fehler angezeigt. Ich hatte diese Warnung in
/var/log/mysqld.log
:Ich habe gerade diese Zeile zur
/etc/hosts
Datei hinzugefügt :Problem gelöst! Die Nichtverwendung
skip-name-resolve
verursachte einige Fehler in meiner lokalen App, wenn eine Verbindung zu MySQL hergestellt wurde.quelle
Ich hatte das gleiche Problem. Um das Problem zu beheben, habe ich gerade den Host von localhost: 3306 in localhost geändert. Daher kann ein Fehler auftreten, wenn Sie einen nicht ordnungsgemäßen Port für die Verbindung trennen. Es ist besser, die Standardeinstellung beizubehalten.
quelle
-P 3306
Datenbankverzeichnis Lese- / Schreibberechtigung auch ein Problem, das ich gefunden habe. Stellen Sie einfach sicher, dass Ihre Anwendung Dateien am Datenbankspeicherort rw kann. Probieren Sie chmod 777 zum Testen aus.
quelle
Ich hatte das gleiche Problem. Ich habe AllowTcpForwarding überprüft und versucht, Ja zu setzen, aber es fehlte in meiner sshd_config, also keine Hilfe. Ich habe weder sshd_config noch my.cnf geändert. Stellen Sie sicher, dass der ssh-Hostname NICHT mit dem mysql-Hostnamen übereinstimmt (verwenden Sie localhost).
Wählen Sie in der Workbench +, um eine neue Verbindung hinzuzufügen, und legen Sie Folgendes fest:
Testverbindung. Es sollte erfolgreich sein, dann drücken Sie OK.Viola!
quelle
Wenn die Bindungsadresse in Ihrer Konfigurationsdatei nicht vorhanden ist und MySQL auf einer AWS-Instanz gehostet wird, überprüfen Sie bitte Ihre Sicherheitsgruppe. Unter idealen Bedingungen sollten die eingehenden Regeln alle Verbindungen von Port 3306 akzeptieren und die ausgehenden Regeln sollten auf alle gültigen IPs antworten.
quelle
Ich habe unten 3 Schritte gemacht und dann für mich gearbeitet.
bind-address = "YOUR MACHINE IP"
in dermy.cnf
Datei unter /etc/my.cnfStarten Sie den Dienst mit dem Befehl neu:
service httpd restart
GRANT ALL PRIVILEGES ON yourDB.* TO 'username'@'YOUR_APPLICATION_IP' IDENTIFIED BY 'YPUR_PASSWORD' WITH GRANT OPTION;
quelle
Ich hatte einen ähnlichen Fehler (Verbindung zu MYSQL auf aws über MYSql Workbench). Früher habe ich mich gut verbunden und plötzlich funktionierte es nicht mehr und funktionierte einfach nicht mehr. Meine Verbindung war über SSH durch eine Schlüsseldatei geschützt.
Es stellte sich heraus, dass ich eine Zeitüberschreitung hatte. Also habe ich das Zeitlimit für die SQL-Verbindung von Standard 10 auf 30 Sekunden erhöht und konnte loslegen. Dinge zu versuchen (wenn Sie in einem ähnlichen Setup sind)
mysql -u [username] -p [database]
? Dadurch wird nach Problemen mit Benutzerrechten usw. gesucht.quelle
Begrenzter Speicherplatz kann zu diesem Fehler führen.
Überprüfen Sie Ihren Speicherplatz
Versuchen Sie, den Speicherplatz zu vergrößern, wenn 100% der Festplatten verwendet werden.
In meinem Fall: Ich habe eine Vagrant (8.0.1) Box (Ubuntu 16.04). Meine MySQL-Festplattenkapazität betrug 10 GB, ich habe sie auf 20 GB erhöht
Starten Sie dann MySQL neu
quelle
Wenn Sie auf diesen Fehler stoßen, indem Sie eine Verbindung von der Fernbedienung herstellen, gehen Sie zur Remote-MySQL-Option in cpanel und fügen Sie% in Host hinzu (% Platzhalter ist zulässig).
quelle