FEHLER 2002 (HY000): Über den Socket '/var/run/mysqld/mysqld.sock' kann keine Verbindung zum lokalen MySQL-Server hergestellt werden.


7

Ich habe gerade meinen MySQL-Server auf Debian aktualisiert. Wenn ich jetzt den Server starte und versuche, eine Verbindung herzustellen, wird folgende Fehlermeldung angezeigt:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Wie kann ich das beheben?


Wurde der MySQL-Dienst erfolgreich gestartet? Überprüfen Sie das Protokoll.
Shane Madden

Es startet, aber es wird kein Prozess angezeigt.
Markum

Ich hatte gerade diesen Fehler und es stellte sich heraus, dass es sich um einen Fehler in der Konfigurationsdatei handelte, die ich gerade geändert hatte.
Linitbuff

Hallo, ist ein einfacher Ansatz, der dies für mich behoben hat: k2013joseph.wordpress.com/2015/02/08/…
Kaweesi Joseph

Antworten:


2

Ich weiß, dass diese Frage fünf Monate alt ist, aber da ich bei drei verschiedenen Upgrades auf dasselbe Problem gestoßen bin, dachte ich, ich würde meine Lösung trotzdem veröffentlichen.

In meinem Fall scheint dies auf einen Fehler in den Debian-Update-Skripten zurückzuführen zu sein (daher kann das Problem auch in Ubuntu auftreten). Irgendwie haben einige der binären Protokolldateien nach Abschluss des Aktualisierungsvorgangs den falschen Besitz. Dadurch wird verhindert, dass der Server Schreibzugriff auf seine eigenen Protokolle erhält, sodass er nicht gestartet werden kann.

Auf Debian (zumindest auf unseren Servern) leben diese Dateien alle /var/lib/mysql. Alles dort sollte dem Benutzer mysql und der Gruppe mysql gehören. Einige der Dateien mysql-bin.*befanden sich jedoch nach dem Upgrade im Besitz von root. Durch Ändern des Besitzes der Protokolldateien auf MySQL konnte der Server ordnungsgemäß gestartet werden:

# chown mysql:mysql /var/lib/mysql/mysql-bin.*
# /etc/init.d/mysql start

Ich hoffe das spart jemandem etwas Zeit.


1

Versuche Folgendes

mkdir /var/run/mysql
chown mysql:mysql /var/run/mysql

Dann starte mysql ...


Fertig, aber nichts passiert, wenn ich es tue service mysql startoder aufhöre. Aber wenn ich es stoppe und den Client benutze, gibt es mir immer noch den Fehler, als ob es noch eingeschaltet wäre. Ich glaube, ich habe möglicherweise zwei Konflikte zwischen MySQL-Servern.
Markum

0

MySQL konnte höchstwahrscheinlich nicht gestartet werden. Versuchen Sie auszuführen, ps aux | grep mysqldum festzustellen, ob eine Prozess-ID für den MySQL-Daemon vorhanden ist.

Um den Kommentar von Shane zu erweitern, überprüfen Sie das MySQL-Protokoll auf Gründe für den fehlgeschlagenen Start. Der Standardspeicherort ist/var/log/mysql/error.log


Nein, kein Prozess. Und es gibt keine Fehlerdatei.
Markum

0

Starten Sie zuerst den MySQL-Server

Führen Sie dann diesen Befehl aus

ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.