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?

2voto

Ingo Punkte 5017

Erstellen Sie zunächst das Verzeichnis /var/run/mysqld

mit Befehl:

mkdir -p /var/run/mysqld

dann fügen Sie dem Verzeichnis Rigths hinzu

chown mysql:mysql /var/run/mysqld

nach diesem Versuch

mysql -u root

1voto

Arvind Pant Punkte 341

Ich möchte euch nur mitteilen, dass ich dasselbe Problem hatte und es mit dem folgenden Befehl gelöst habe

sudo ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock

Ich habe beide Speicherorte in meiner my.cnf hart verlinkt und der Fehler

Diese Antwort erhielt ich von Linkbeschreibung hier eingeben

1voto

xiaopo Punkte 403

Meine Situation ist, dass mysql im /etc/ Verzeichnis in mysql_bk umbenannt ist, kopieren Sie einfach mysql_bk

sudo cp -r /etc/mysql_bk/ /etc/mysql/

dann

service mysql restart

1voto

Greg Punkte 5179

Ich würde auch die mysql-Konfiguration überprüfen. Ich hatte dieses Problem mit meinem eigenen Server, aber ich war ein wenig zu voreilig und falsch konfiguriert die innodb_buffer_pool_size für meine Maschine.

innodb_buffer_pool_size = 4096M

Normalerweise läuft es gut bis 2048, aber ich schätze, ich habe nicht den nötigen Speicher, um 4 Gigabyte zu unterstützen.

Ich kann mir vorstellen, dass dies auch mit anderen mysql-Konfigurationseinstellungen passieren kann.

1voto

Prashant Punkte 4953

Manchmal ist es einfach so, dass Sie nicht genug Platz auf dem Server haben, geben Sie einfach etwas Platz frei (z.B. durch Löschen der Log-Dateien) und starten Sie mysql:

/etc/init.d/mysql start

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