479 Stimmen

error: 'Kann keine Verbindung zum lokalen MySQL-Server über Socket '/var/run/mysqld/mysqld.sock' (2)' -- Fehlt /var/run/mysqld/mysqld.sock

Mein Problem begann damit, dass ich mich nicht mehr als Root bei meiner mysql-Installation anmelden konnte. Ich habe versucht, mysql ohne aktivierte Passwörter laufen zu lassen... aber immer wenn ich den Befehl

# mysqld_safe --skip-grant-tables &

Ich würde die Eingabeaufforderung niemals zurückbekommen. Ich habe versucht zu folgen diese Anweisungen, um das Passwort wiederherzustellen .

Der Bildschirm sieht einfach so aus:

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

und ich bekomme keine Aufforderung, die SQL-Befehle zum Zurücksetzen des Passworts einzugeben.

Wenn ich es durch Drücken von CTRL + C erhalte ich die folgende Meldung:

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

Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

Wenn ich den Befehl erneut ausführe und lange genug stehen lasse, erhalte ich die folgende Reihe von Meldungen:

root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

[1]+  Done                    mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#

Aber wenn ich dann versuche, mich als Root anzumelden, indem ich das tue:

# mysql -u root

Ich erhalte die folgende Fehlermeldung:

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

Ich habe es überprüft und /var/run/mysqld/mysqld.sock Datei nicht existiert. Der Ordner schon, aber die Datei nicht.

Ich weiß nicht, ob das hilfreich ist oder nicht, aber ich habe find / -name mysqld und es wurde angezeigt:

/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder

Ich weiß nicht, ob das normal ist oder nicht. Aber ich füge diese Informationen nur für den Fall ein, dass es hilft.

Ich beschloss schließlich, mysql zu deinstallieren und neu zu installieren.

apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin

Nachdem ich alle Pakete in der gleichen Reihenfolge wie oben neu installiert hatte, erhielt ich während der phpmyadmin-Installation den gleichen Fehler:

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

Also habe ich erneut versucht, zu deinstallieren/neu zu installieren. Dieses Mal habe ich nach der Deinstallation der Pakete auch alle mysql-Dateien und -Verzeichnisse manuell umbenannt in mysql.bad an ihren jeweiligen Standorten.

/var/lib/mysql 
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql

Dann habe ich versucht, neu zu installieren mysql-server y mysql-client wieder. Aber ich habe festgestellt, dass ich nicht nach einem Passwort gefragt werde. Sollte es nicht nach einem Admin-Passwort fragen?

20voto

motorbaby Punkte 584

Unter Ubuntu mit MySQL 5.6 und 5.7 gibt es einen Fehler, bei dem var/run/mysqld/ würde verschwinden, wenn der MySQL-Dienst gestoppt oder neu gestartet wird. Dies verhindert, dass MySQL überhaupt läuft. Ich habe diesen Workaround gefunden, der zwar nicht perfekt ist, aber zumindest dafür sorgt, dass er nach dem Stoppen/Neustart wieder läuft:

mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/

19voto

Sadee Punkte 2524

Vergewissern Sie sich, dass der Pfad zu Ihrer unzugänglichen Socket-Datei derselbe ist wie '/var/run/mysqld/mysqld.sock', andernfalls ändern Sie den Pfad. Beenden Sie den mysqld

$ sudo /etc/init.d/mysqld stop

Wenn der Prozess noch läuft;

$ sudo pkill -9 mysqld

Entfernen Sie das mysql-Verzeichnis, in dem der Socket erstellt werden soll. Für mich hat es nicht erlaubt, zu entfernen, so musste ich zwangsweise entfernen.

$ sudo mkdir -p /var/run/mysqld

Setzen Sie den Eigentümer des Verzeichnisses

$ sudo chown mysql:mysql /var/run/mysqld

mysql starten

$ sudo /etc/init.d/mysql start

Versucht, mysql zu verbinden

$ sudo mysql -u dbuser -p

17voto

coolcool1994 Punkte 3439

Kopieren Sie einfach diese Codes und fügen Sie sie ein: Dies sollte im Terminal innerhalb eines Servers geschehen, wenn Ihre mysql-Datenbank nicht richtig installiert ist und wenn Sie folgende Fehlermeldung erhalten: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'.

MySql anhalten

sudo /etc/init.d/mysqld stop

Neu starten oder starten Sie es

sudo /etc/init.d/mysqld restart or sudo /etc/init.d/mysqld start

Erstellen Sie einen Link wie diesen und geben Sie ihn an das System weiter

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

Führen Sie eine sichere Installation durch, die Sie bei der Konfiguration von mysql anleitet.

/usr/bin/mysql_secure_installation

15voto

Taimoor Changaiz Punkte 9228

Ich konfrontiert gleichen Fehler und fand, dass es aufgrund der Aktualisierung von Paketen war, so dass nach dem Neustart meines Systems ich Fehler behoben.

Ich denke, aufgrund von Sql-Bibliotheken / Pakete aktualisieren, dass Fehler aufgetreten ist, so versuchen Sie dies, wenn Sie einige Aktualisierung tun :)

11voto

Warum wird dieser Fehler angezeigt?

Ich erhielt neue Updates von mysql-Bibliotheken, so dass ich mein Kubuntu OS aktualisiert, nachdem diese Fehler erhalten.


Befehle, die ich ausprobiert habe und wie ich das Problem behoben habe.

Der MySql-Server läuft korrekt aber als ich versuchte, eine Verbindung herzustellen, gab es

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'.

Ich überprüfte /var/run/mysqld/mysqld.sock'. dieses Verzeichnis. Meine Dateien waren nicht vorhanden.

Ich habe auch versucht, mit diesen Befehlen eine Verbindung herzustellen, aber das hat bei mir nicht funktioniert.

 mysql -h 127.0.0.1 -P 3306 -u root -p

 sudo service mysql start

Nach der Verschwendung von ca. 2 Stunden Ich habe die Lösung gefunden

sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade -f

Danach war für mich alles in Ordnung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X