GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Fehler:„Verbindung zum lokalen MySQL-Server über Socket „/var/run/mysqld/mysqld.sock“ (2) nicht möglich“ – Fehlende /var/run/mysqld/mysqld.sock

Probieren Sie diesen Befehl aus,

sudo service mysql start

Um alle Socket-Dateien auf Ihrem System zu finden, führen Sie Folgendes aus:

sudo find / -type s

Bei meinem Mysql-Serversystem war der Socket bei /var/lib/mysql/mysql.sock geöffnet

Sobald Sie herausgefunden haben, wo der Socket geöffnet wird, fügen Sie Ihrer Datei /etc/my.cnf die Zeile mit dem Pfad zur Socket-Datei hinzu oder bearbeiten Sie sie:

socket=/var/lib/mysql/mysql.sock

Manchmal gibt das Systemstartskript, das die ausführbare Befehlszeilendatei gestartet hat, ein Flag --socket=path an . Dieses Flag könnte den my.cnf-Speicherort überschreiben, und das würde dazu führen, dass ein Socket nicht dort gefunden wird, wo die my.cnf-Datei es angibt. Wenn Sie dann versuchen, den mysql-Befehlszeilenclient auszuführen, liest er my.cnf, um den Socket zu finden, findet ihn jedoch nicht, da er von dem Ort abweicht, an dem der Server einen erstellt hat. Also, es sei denn, es interessiert Sie, wo sich der Socket befindet, es sollte einfach funktionieren, die my.cnf entsprechend zu ändern.

Stoppen Sie dann den mysqld-Prozess. Wie Sie dies tun, ist je nach System unterschiedlich.

Wenn Sie ein Superuser im Linux-System sind, versuchen Sie eine der folgenden Methoden, wenn Sie die spezifische Methode, die Ihr Mysql-Setup verwendet, nicht kennen:

  • service mysqld stop
  • /etc/init.d/mysqld stop
  • mysqladmin -u root -p shutdown
  • Einige Systeme sind nicht so eingerichtet, dass sie einen eleganten Weg haben, mysql zu stoppen (oder aus irgendeinem Grund antwortet mysql nicht), und Sie können das Beenden von mysql erzwingen mit:
    • Ein Schritt:pkill -9 mysqld
    • Zweistufig (am wenigsten bevorzugt):
      • Finden Sie die Prozess-ID von mysql entweder mit pgrep mysql oder ps aux | grep mysql | grep -v grep
      • Angenommen, die Prozess-ID ist 4969 mit kill -9 4969 beenden

Nachdem Sie dies getan haben, möchten Sie vielleicht nach einer PID-Datei in /var/run/mysqld/ suchen und löschen

Stellen Sie sicher, dass die Berechtigungen für Ihren Socket so sind, dass jeder Benutzer, auf dem mysqld läuft, lesen/schreiben kann. Ein einfacher Test besteht darin, es für vollständigen Lese-/Schreibzugriff zu öffnen und zu sehen, ob es noch funktioniert:

chmod 777 /var/run/mysqld/mysqld.sock

Wenn das Problem dadurch behoben wird, können Sie die Berechtigungen und den Besitz des Sockets je nach Bedarf basierend auf Ihren Sicherheitseinstellungen anpassen.

Außerdem muss das Verzeichnis, in dem sich der Socket befindet, für den Benutzer erreichbar sein, der den mysqld-Prozess ausführt.


Dieser Fehler tritt aufgrund mehrerer Installationen von mysql auf. Führen Sie den Befehl aus:

ps -A|grep mysql

Beenden Sie den Prozess mit:

sudo pkill mysql

und führen Sie dann den Befehl aus:

ps -A|grep mysqld

Beenden Sie diesen Prozess auch, indem Sie Folgendes ausführen:

sudo pkill mysqld

Jetzt sind Sie vollständig eingerichtet, führen Sie einfach die folgenden Befehle aus:

service mysql restart
mysql -u root -p

Habe wieder sehr gut funktionierendes mysql


Linux
  1. Verbindung zum MySQL-Server nicht möglich Fehler 111

  2. Schwerwiegender Fehler:Berechtigungstabellen können nicht geöffnet und gesperrt werden:Tabelle „mysql.host“ existiert nicht

  3. Verbindung zum lokalen MySQL-Server über Socket „/var/run/mysqld/mysqld.sock“ in Ubuntu 12.04.5 LTS nicht möglich

  4. mysqld_safe mysqld aus der PID-Datei /var/run/mysqld/mysqld.pid verhindert einen Neustart des Servers

  5. NGINX:connect() zu unix:/var/run/php7.0-fpm.sock fehlgeschlagen (2:Keine solche Datei oder Verzeichnis)

So beheben Sie, dass keine Verbindung zum lokalen MySQL-Server über Socket /var/run/mysqld/mysqld.sock hergestellt werden kann (2)

Stoppen des MySQL-Datenbankservers:mysqld fehlgeschlagen

Django static_root in /var/www/... - keine Berechtigungen für collectstatic

unix:///var/run/supervisor.sock keine solche Datei

Wie greife ich auf Postgres zu, wenn ich eine Fehlermeldung zu /var/run/postgresql/.s.PGSQL.5432 erhalte?

Sollten Websites gemäß der empfohlenen Verwendung in /var/ oder /usr/ leben?