Ich musste nur MySQL neu installieren und habe ein Problem beim Starten. Der Socket (mysql.sock) kann nicht gefunden werden. Das Problem ist, dass ich es auch nicht kann. In meinem Mac OS X 10.4-Terminal tippe ich: locate mysql.sock
und komme zurück /private/tmp/mysql.sock
. Es ist sinnvoll, dass die Socket-Datei an diesem Speicherort vorhanden ist, dies ist jedoch nicht der Fall.
Wie finde ich die Socket-Datei?
Wenn locate einen falschen Speicherort zurückgibt, muss er über eine Art Speicher und wahrscheinlich Indizes verfügen. Wie kann ich diesen Index aktualisieren?
/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
Antworten:
um den ersten Teil Ihrer Frage zu beantworten:
Lauf
und überprüfen Sie die Variable 'Socket'
quelle
mysqladmin variables
. Was ist wann zu tunerror: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
? :)sudo find / -name mysql.sock
aus dem Stammverzeichnis und konnte mysql.sock nirgendwo auf dem System finden. Ich habe MySQL mit der 64-Bit-dmg-Datei für Mac OS 10.7 installiert. Derzeit laufen Mavericks.Dies löste mein Problem
mysql_config --socket
AKTUALISIEREN
mysql_config kann uns sagen, wo sich die Datei mysql.sock befinden soll, aber in meinem Fall war die Datei nicht vorhanden. Also habe ich my.cnf gelöscht:
Und dann MySQL neu gestartet:
Die Datei wurde erstellt und MySQL läuft jetzt gut.
quelle
ls: /etc/my.cnf: No such file or directory
ich es zuerst erstellen?/etc/my.cnf
versuchen Sie es mit/usr/loca/etc/my.cnf
- @AbhiDie Socket-Datei sollte automatisch erstellt werden, wenn der MySQL-Daemon gestartet wird.
Wenn es nicht gefunden wird, existiert höchstwahrscheinlich nicht das Verzeichnis, das es enthalten soll, oder ein anderes Dateisystemproblem verhindert, dass der Socket erstellt wird.
Um herauszufinden, wo sich die Datei befinden sollte, verwenden Sie:
% mysqld --verbose --help | grep ^socket
quelle
mysqld
ist, dass es Ihnen sagen sollte, wo der Server es tatsächlich platziert hat!Das hat es für mich gefunden:
Mac OS X
quelle
Mein Problem war auch die mysql.sock-Datei.
Während des Drupal-Installationsprozesses musste ich angeben, welche Datenbank ich verwenden möchte, aber meine Datenbank wurde nicht gefunden
Das System durchsucht mysql.sock, befindet sich jedoch im falschen Verzeichnis
alles was du tun musst ist es zu verlinken;)
Ich habe viel Zeit gebraucht, um alle wichtigen Informationen zu googeln, aber ich habe sogar Stunden gebraucht, um herauszufinden, wie ich mich anpassen kann, aber jetzt kann ich das Ergebnis präsentieren: D.
ps: wenn du genau sein willst, musst du dein
/tmp/mysql.sock-file
(wenn es sich dort auch in deinem System befindet) mit dem Verzeichnis verknüpfen, das von der php.ini (oder php.default.ini) angegeben wird, wopdo_mysql.default_socket= ...
quelle
pdo_mysql.default_socket
Sie den Webserver neu starten, damit die Änderungen geladen werden könnensudo apachectl restart
Ich habe den genauen Pfad erhalten mit:
Da dies nur den Pfad zurückgibt und keine Eingabe erfordert, können Sie ihn möglicherweise in einem Shell-Skript verwenden.
MySQL muss derzeit auf Ihrem Computer ausgeführt werden, damit dies funktioniert. Funktioniert auch für MariaDB.
quelle
Die ursprünglichen Fragen scheinen aus der Verwirrung darüber zu stammen, a) wo sich die Datei befindet und b) wo gesucht wird (und warum wir sie dort nicht finden können, wenn wir suchen oder suchen). Ich denke, Alnitaks Punkt war, dass Sie herausfinden möchten, wo es verlinkt ist - aber grep zeigt Ihnen keinen Link, oder? Die Datei lebt dort nicht, da es sich um einen Link handelt, handelt es sich nur um einen Zeiger. Sie müssen noch wissen, wo Sie den Link platzieren sollen.
Meine Sockendatei befindet sich definitiv in / tmp und der FEHLER, den ich erhalte, sucht in / var / lib / (nicht nur / var). Ich habe jetzt eine Verknüpfung zu / var und / var / lib hergestellt und erhalte immer noch den Fehler "Über den Socket 'var / lib / mysql.sock' (2) kann keine Verbindung zum lokalen MySQL-Server hergestellt werden."
Beachten Sie die (2) nach dem Fehler .... Ich habe in einem anderen Thread festgestellt, dass dies bedeutet, dass der Socket zwar versucht werden könnte, aber etwas stimmt nicht mit dem Socket selbst - um die Maschine vollständig herunterzufahren - damit Die Steckdose schließt. Dann sollte ein Neustart das Problem beheben. Ich habe es versucht, aber es hat bei mir nicht funktioniert (jetzt frage ich mich, ob ich zu schnell neu gestartet habe? Wirklich?) Vielleicht ist es eine Lösung für jemand anderen.
quelle
Versuchen Sie dies stattdessen. Dadurch wird das angeforderte Ergebnis ausgegeben und nicht verwandte Informationen werden entfernt.
quelle
Um die Datenbank des Ortes zu aktualisieren, habe ich ausgeführt
quelle
(Q1) Wie finde ich die Socket-Datei?
Der Standardspeicherort für die Socket-Datei ist /tmp/mysql.sock. Verwenden Sie diese Option, um die Socket-Datei für Ihr System zu finden.
Wenn Sie gerade MySql 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 zur Eingabe eines Kennworts aufgefordert 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
(F2) Wie kann ich den Suchindex aktualisieren?
Aktualisieren Sie die Suchdatenbank mit diesem Befehl.
quelle
Unter Mac OS X 10.11.6 wird der gleiche 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 viel gequält und durch Ratschläge gekümmert hatte, von denen keine das Problem zu beheben schien, ging ich zurück und löschte die installierten Ordner und tat es einfach
brew install mysql
.Bei den meisten Befehlen wird immer noch der gleiche Fehler angezeigt, aber dies funktioniert:
/usr/local/bin/mysqld
und kehrt zurück:
quelle
Ich konnte den MySQL-Socket überhaupt nicht finden, also installierte ich den MySQL-Server neu (alle Tabellen- und Phpmyadmin-Einstellungen wurden beibehalten). Hier sind die Befehle:
1) Installieren
2) Befolgen Sie die Schritte zur Terminalkonfiguration
3) Status prüfen: (Sollte "Aktiv: aktiv (läuft)" zurückgeben)
quelle
Leider hat in meinem Fall keines der oben genannten Verfahren funktioniert. Aber schließlich habe ich Lösungen gefunden.
Um herauszufinden, wo sich die Datei mysql.sock befindet, öffnen Sie einfach den xampp-Manager, wählen Sie MySQL aus und klicken Sie rechts auf Konfigurieren. Klicken Sie im Konfigurationsfenster auf "Conf-Datei öffnen" und suchen Sie einfach nach mysql.sock, indem Sie die Tastenkombination CMD + F drücken.
In meinem Fall wurde der Besitzer der Datei mysql.sock geändert, und ich musste sie mit: chmod root: admin mysql.sock wieder in root admin ändern
Danach wurde auf die Datenbank zugegriffen.
quelle
Ich kann bei Frage 1 nicht helfen, aber um die Dateidatenbank zu aktualisieren
locate
, führen Sie Folgendes aus:quelle