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?
Antworten:
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 Dateienmysql-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:Ich hoffe das spart jemandem etwas Zeit.
quelle
Versuche Folgendes
Dann starte mysql ...
quelle
service mysql start
oder 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.MySQL konnte höchstwahrscheinlich nicht gestartet werden. Versuchen Sie auszuführen,
ps aux | grep mysqld
um 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
quelle
Starten Sie zuerst den MySQL-Server
Führen Sie dann diesen Befehl aus
quelle