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?

0voto

RtmY Punkte 11910

Für diejenigen, die MySql über Vitess .

Ich habe diesen Fehler bei der vttablet Komponente aufgrund eines Syntaxfehlers (vergessen, die ; bis zum Ende des SQL-Befehls), die an init_db.sql die gegeben ist als Beispiel für den Anfang docs :

apiVersion: v1
kind: Secret
metadata:
  name: my-cluster-config
type: Opaque
stringData:
  users.json: |
    {
      "user": [{
        "UserData": "user",
        "Password": "pass"
      }]
    }
  init_db.sql: |
    # This file is executed immediately after mysql_install_db,
    # to initialize a fresh data directory.
    CREATE DATABASE IF NOT EXISTS my_db <--- No ';' at the end

Vollständiges Fehlerprotokoll:

TabletManager.ReplicationStatus()(on zone1from ) Fehler: net.Dial(/vt/socket/mysql.sock) zum lokalen Server fehlgeschlagen: dial unix /vt/socket/mysql.sock: connect: no such file or directory (errno 2002)

0voto

Kamuran Sönecek Punkte 3272

Ich hatte das gleiche Problem und nach Stunden fand ich dies: Ich habe dies zum Pfad hinzugefügt /etc/mysql/my.cnf

[mysql]
innodb_force_recovery = 1

Wenn Sie mysqld dies verwenden:

[mysqld]
innodb_force_recovery = 1

0voto

Amin.Qarabaqi Punkte 586

Ich hatte das gleiche Problem. Nach dem Entfernen und Neuinstallieren von mysql trat dieses Problem nicht mehr auf.

VORSICHT : Sie sind DATEN será DELTED !!! leider habe ich keine Möglichkeit gefunden, ein Backup von mysql-Dateien zu erhalten, wenn mysql defekt ist (wenn Sie eine Möglichkeit kennen, dies zu tun, bitte in den Kommentaren vermerken).
Verwenden Sie diese Methode nur, wenn Ihnen Ihre Daten in mysql egal sind (wie mir, als ich versuchte, mysql in einem neu installierten Betriebssystem zu installieren).

Problem:

Was hat das Problem verursacht? apt remove um mysql neu zu installieren, aber dieser Auftrag verursachte einen Fehler in mysql:

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

Reparieren:

Dann habe ich den Befehl purge um mysql neu zu installieren, und es hat funktioniert:

  1. sudo apt purge mysql* (dadurch werden alle Ihre Daten gelöscht!);
  2. sudo apt autoremove
  3. sudo apt install mysql-server (Fügen Sie hinzu, welche Anwendung Sie benötigen!)

Nachdem Sie diese Schritte durchgeführt haben, führen Sie einfach sudo mysql -u root .

0voto

Umut Can Arda Punkte 61

Wenn Sie den Fehler "Unit mysql.service not found" haben, sollten Sie "sudo apt-get install mysql-server" installieren

0voto

David Kariuki Punkte 1268

'/var/run/mysqld/mysqld.sock' (2)' on pop os

Wenn Sie Pop-os verwenden, tun Sie Folgendes

Entfernen und bereinigen Sie alle zuvor installierten mysql-Server. Installieren Sie ihn dann und konfigurieren Sie ihn wie unten beschrieben.

sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation

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