it-swarm.com.de

Mysql.sock kann nicht gefunden werden

Ich musste nur mysql neu installieren und habe Probleme beim Starten. Es kann den Socket (mysql.sock) nicht finden. Das Problem ist, dass ich das auch nicht kann. In meinem Mac OS X 10.4-Terminal gebe ich Folgendes ein: locate mysql.sock und erhalte /private/tmp/mysql.sock zurück. Es ist sinnvoll, dass die Socket-Datei an diesem Speicherort vorhanden ist, tatsächlich aber nicht.

  1. Wie finde ich die Socket-Datei?

  2. Wenn locate eine falsche Position zurückgibt, muss es über eine Art Speicher und möglicherweise über Indizes verfügen. Wie kann ich diesen Index aktualisieren?

69
Tony

um den ersten Teil Ihrer Frage zu beantworten:

lauf 

% mysqladmin variables

und überprüfen Sie die Variable 'socket'

126
behas

Das hat mein Problem gelöst 

mysql_config --socket

UPDATE

mysql_config kann uns sagen, wo sich die Datei mysql.sock befinden sollte, aber in meinem Fall war die Datei nicht vorhanden. Also habe ich my.cnf gelöscht:

Sudo rm -rf /etc/my.cnf

Und dann wurde mysql neu gestartet:

brew services restart mysql

Die Datei wurde erstellt und mysql läuft jetzt gut.

35
Eugene Ramirez

Die Socket-Datei sollte beim Start des MySQL-Daemons automatisch erstellt werden.

Wenn es nicht gefunden wird, existiert höchstwahrscheinlich das Verzeichnis, das es enthalten soll, nicht, oder ein anderes Dateisystemproblem verhindert, dass der Socket erstellt wird.

Um herauszufinden, wo sich die Datei befinden soll, verwenden Sie:

% mysqld --verbose --help | grep ^socket
17
Alnitak

Das hat es für mich gefunden:

netstat -ln | grep mysql

Mac OS X

15
zero_cool

Mein Problem war auch die mysql.sock-Datei.

Während des Drupal-Installationsprozesses musste ich sagen, welche Datenbank ich verwenden möchte Meine Datenbank wurde jedoch nicht gefunden 

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

das System durchsucht mysql.sock, aber es befindet sich im falschen Verzeichnis

alles was Sie tun müssen, ist es zu verlinken;)

ich habe lange gebraucht, um alle wichtigen Informationen zu durchsuchen, aber ich habe sogar Stunden gebraucht, um herauszufinden, wie ich mich anpassen kann. Jetzt kann ich das Ergebnis präsentieren: D

ps: wenn du genau sein willst, musst du deinen /tmp/mysql.sock-file (falls er sich auch in deinem System befindet) mit dem von der php.ini (oder php.default.ini) angegebenen Verzeichnis verknüpfen, wobei pdo_mysql.default_socket= ...

10
Matthias D.

Ich habe den genauen Pfad mit:

netstat -ln | grep -o -m 1 -E '\S*mysqld?\.sock'

Da dies nur den Pfad zurückgibt und keine Eingabe erfordert, können Sie ihn möglicherweise in einem Shell-Skript verwenden.

Damit dies funktioniert, muss MySQL auf Ihrem Computer ausgeführt werden. Funktioniert auch für MariaDB.

3
mattbell87

Die ursprünglichen Fragen scheinen aus der Verwirrung bezüglich a) zu kommen, wo sich die Datei befindet, und b) wo wird sie gesucht (und warum können wir sie dort nicht finden, wenn wir ein locate oder grep finden). Ich denke, Alnitak hatte den Punkt, dass Sie herausfinden wollen, wo es verlinkt wurde - aber Grep zeigt Ihnen keinen Link, richtig? Die Datei lebt nicht dort, da es sich um einen Link handelt, handelt es sich lediglich um einen Zeiger. Sie müssen immer noch wissen, wo der Link platziert werden soll. 

meine Socken-Datei ist auf jeden Fall in/tmp und der FEHLER, den ich bekomme, sucht sie in/var/lib/(nicht nur/var). Ich habe jetzt/var und/var/lib verlinkt, und ich bekomme immer noch den Fehler Msgstr "Kann keine Verbindung zum lokalen MySQL Server über Socket 'var/lib/mysql.sock' (2) herstellen". 

Beachten Sie die (2) nach dem Fehler .... Ich habe in einem anderen Thread festgestellt, dass dies bedeutet, dass der Socket möglicherweise versucht wird, verwendet zu werden, aber mit dem Socket selbst ist etwas nicht in Ordnung - also, um die Maschine vollständig herunterzufahren - damit Die Steckdose schließt sich. Dann sollte ein Neustart das Problem beheben. Ich habe es versucht, aber es funktionierte nicht für mich (jetzt frage ich mich, ob ich zu schnell neu gestartet habe? Wirklich?) Vielleicht ist es eine Lösung für jemanden anderen. 

2
Amy D
$ mysqladmin variables | grep sock

Versuchen Sie es stattdessen, dies gibt das angeforderte Ergebnis aus und entfernt nicht zusammenhängende Informationen.

1
soarinblue

Unter Mac OS X 10.11.6 wird derselbe Fehler angezeigt:

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

Nachdem ich mich hier und in verwandten Fragen mit Ratschlägen befasst und diese gründlich durchgearbeitet hatte, ging ich zurück, löschte die installierten Ordner und tat einfach brew install mysql.

Immer noch der gleiche Fehler bei den meisten Befehlen, aber das funktioniert:

/usr/local/bin/mysqld

und kehrt zurück:

/ usr/local/bin/mysqld: bereit für Verbindungen.

Version: '5.7.12' Socket: '/tmp/mysql.sock' Port: 3306 Homebrew

0
szeitlin

(Q1) Wie finde ich die Socket-Datei?  

Der Standardspeicherort für die Socketdatei ist /tmp/mysql.sock. Um die Socketdatei für Ihr System zu finden, verwenden Sie diese.

mysqladmin variables | grep socket

Wenn Sie MySql gerade installiert haben, wird die Datei mysql.sock erst erstellt, wenn der Server gestartet wird. Verwenden Sie diesen Befehl, um ihn zu starten.

Sudo launchctl load -F /Library/LaunchDaemons/com.Oracle.oss.mysql.mysqld.plist

Wenn Sie nach einem Kennwort gefragt werden, können Sie den Benutzernamen root oder einen anderen Benutzernamen wie diesen übergeben. Das Terminal fordert Sie zur Eingabe des Passworts auf.

mysqladmin --user root --password variables | grep socket

(Q2) Wie aktualisiere ich den Suchindex?  

Aktualisieren Sie die locate-Datenbank mit diesem Befehl.

Sudo /usr/libexec/locate.updatedb
0
Padhraic

Um die Datenbank des Locates zu aktualisieren, bin ich gestartet

/usr/libexec/locate.updatedb
0
Timbinous

Ich konnte MySQL-Socket überhaupt nicht finden, also installierte MySQL-Server neu (alle Tabellen und phpmyadmin-Einstellungen wurden beibehalten). Hier sind die Befehle: 

1) Installieren

Sudo apt-get install mysql-server

2) Befolgen Sie die Schritte zur Konfiguration des Terminals

Sudo mysql_secure_installation

3) Status prüfen: (Sollte "Aktiv: Aktiv (läuft)" zurückgeben)

systemctl status mysql.service

0
Nika Tsogiaidze

Leider hat keines der oben genannten Dinge in meinem Fall funktioniert. Aber schließlich habe ich Lösungen gefunden.

Um herauszufinden, wo sich die mysql.sock-Datei befindet, öffnen Sie einfach den xampp-Manager, wählen Sie MySQL aus und klicken Sie rechts auf Konfigurieren. Klicken Sie im Konfigurationsbereich auf Open Conf File, und suchen Sie einfach nach mysql.sock, indem Sie die Tastenkombination CMD + F drücken.

In meinem Fall wurde der Besitzer der mysql.sock geändert und ich musste ihn wieder in root admin ändern: chmod root: admin mysql.sock

Danach wurde auf die Datenbank zugegriffen.

0
szatti1489