FEHLER 2002 (HY000): Über den Socket '/tmp/mysql.sock' kann keine Verbindung zum lokalen MySQL-Server hergestellt werden.

202

Ich habe MySQL unter Mac OS X Mountain Lion mit installiert homebrew install mysql, aber als ich es versuchte, mysql -u rootbekam ich den folgenden Fehler:

FEHLER 2002 (HY000): Über den Socket '/tmp/mysql.sock' (2) kann keine Verbindung zum lokalen MySQL-Server hergestellt werden.

Was bedeutet dieser Fehler? Wie kann ich es reparieren?

kluge Bohnen
quelle
3
Habe es nicht als Antwort install mysql-servergepostet, aber du musst es auch packen, nicht nurmysql
Hanky ​​Panky
3
@HankyPanky Vielleicht stimmte das, als du es geschrieben hast. Aber im Jahr 2016 hat Brew keine mysql-serverzu install.
jjpe
21
Es ist wichtig zu beachten, dass Sie mit Homebrew installiert haben. Ignorieren Sie daher die Tipps, die nicht von Homebrew stammen, und starten Sie (und starten Sie es beim Start neu) mit brew services start mysqloder (wenn Sie keinen Hintergrunddienst wünschen) mysql.server start.
Dave Everitt
1
Ich habe es zum Laufen gebracht, aber mit altem normalem MySQL 5.7.19. Die neue [email protected] 5.7.24konnte nicht funktionieren, da einige Konfigurationsreferenzen mit dem alten mysql anstelle des neuen Brew Cellar [email protected] Keg verknüpft waren. Also danke, ich versuche es später
KeitelDOG
1
Dieser Fehler tritt wahrscheinlich auch nach dem Ausführen auf, brew upgradewodurch eine neuere Version von MySQL als zuvor installiert wird.
Johnsampson

Antworten:

113

Dies liegt wahrscheinlich daran, dass MySQL installiert ist, aber noch nicht ausgeführt wird.

Um zu überprüfen, ob es ausgeführt wird, öffnen Sie den Aktivitätsmonitor und suchen Sie unter "Alle Prozesse" nach dem Prozess "mysqld".

Sie können es starten, indem Sie "MySQL.prefPane" installieren.

Hier ist das vollständige Tutorial, das mir geholfen hat: http://obscuredclarity.blogspot.in/2009/08/install-mysql-on-mac-os-x.html

shammerw0w
quelle
95
Ich bin gerade gelaufen mysqldund das war alles, dies war ein Problem, das durch schlechtes Herunterfahren aufgrund einer Art Hard-Reset / Herunterfahren des Systems verursacht wurde.
ProfNandaa
2
Keine der vorgeschlagenen Methoden funktionierte. Für mich lief es, es gab jedoch ein Berechtigungsproblem. Laufen sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart [email protected]löste das Problem
FooBar
Wenn Sie in Activity Monitor suchen, wird die mysqlId ausgeführt. Um dies zu umgehen, stoppen Sie einfach MySQL und starten Sie es neu.
JpersaudCodezit
108

Sie müssen MySQL starten, bevor Sie den mysqlBefehl auf Ihrem Terminal verwenden können. Führen Sie dazu aus brew services start mysql. Standardmäßig installiert Brew die MySQL-Datenbank ohne Root-Passwort. Um es zu sichern, führen Sie Folgendes aus : mysql_secure_installation.

So verbinden Sie run : mysql -uroot. rootist hier der Benutzername.

Md Mazedul Islam Khan
quelle
8
Laufen sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart [email protected]löste das Problem
FooBar
1
Für diejenigen, die sich fragen, mysql_secure_installationist ein mariaDB-spezifisches Skript.
T. Woody
3
brew services start mysqlErfolg. Aber wenn ich mysql -urootdanach renne, immer noch der gleiche Fehler.
Harper Koo
Ist es notwendig, dies jedes Mal auszuführen, wenn ein Mac gestartet wird, oder wird es ausgeführt, sobald der Fehler behoben ist / MySQL weiter ausgeführt wird oder beim Start gestartet wird?
Connor Leech
Dies einmal auszuführen sollte ausreichen.
Md Mazedul Islam Khan
90

Dies geschah nach der Installation von Homebrew und aufgrund von Berechtigungsproblemen. Die folgenden Befehle haben das Problem behoben.

sudo chown -R _mysql:mysql /usr/local/var/mysql

sudo mysql.server start
Nirojan Selvanathan
quelle
2
du bist großartig @nirojan, ich habe meinen Kopf gegen die Wand geschlagen: thumsup:
Ravi Sharma
Cool. Ich kann mein Problem lösen, wenn ich zu einem anderen Mac-Administratorkonto wechsle :)
William Wong Garay
Tausend Dank. Ich habe jetzt seit mehr als 5 Stunden meinen Kopf geknackt. Ich habe mehrere Antworten im Internet gesehen und nur das hat geholfen.
ivange94
Ich liebe dich @nirojan
Waschbär
Ein großes Lob! Aber als ich mein MacBook neu startete, habe ich das gleiche Problem.
Junior Gantin
46

Lauf: brew info mysql

Und folgen Sie den Anweisungen. Aus der Beschreibung in der Formel:

Set up databases to run AS YOUR USER ACCOUNT with:
    unset TMPDIR
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

To set up base tables in another folder, or use a different user to run
mysqld, view the help for mysql_install_db:
    mysql_install_db --help

and view the MySQL documentation:
  * http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html
  * http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html

Hoffe das hilft.

Gaurav Agarwal
quelle
35

Wie andere darauf hingewiesen haben, liegt dies daran, dass MySQL installiert ist, der Dienst jedoch nicht ausgeführt wird. Es gibt viele Möglichkeiten, den MySQL-Dienst zu starten, und was für mich funktioniert hat, ist das Folgende.

So starten Sie den Dienst:

  1. Gehen Sie zu "Systemeinstellungen"
  2. Im unteren Bereich sollte sich ein MySQL-Symbol befinden.
  3. Doppelklicken Sie darauf, um den 'MySQL Server Status' zu starten und klicken Sie auf die Schaltfläche 'Start MySQL Server'.

Mein env:

Mac Yosemite 10.10.3

Installiertes Paket: /Volumes/mysql-advanced-5.6.24-osx10.8-x86_64

Ithar
quelle
@HosMercury können Sie bestätigen, dass Sie MySQL installiert haben
Ithar
Ich lade MySQL von der offiziellen MySQL-Webseite herunter und installiere es. Diese Lösung funktioniert bei mir. Danke :)
鄭元傑
1
Hallo, ich habe MySQL auch von der offiziellen Webseite heruntergeladen und installiert, aber im Einstellungsbereich ist der Server nicht aktiviert (roter Punkt). Wenn ich auf "SQL Server starten" klicke, wird er für eine Sekunde "grün" und wieder rot. nichts passiert. Ich habe versucht 'chown', Symlink zu tmp / mysql.socket, deinstallieren / neu installieren, brauen mysql installieren, aber alles ist fehlgeschlagen. Die Brew-Installation gibt mir einen unbefriedigten Fehler, etwas über das Erfordernis von Sierra oder höherem Betriebssystem. Ich leite El Capitan. Jede Hilfe wäre dankbar.
Spencer Trinh
24

Lösungen drehen sich um:

  • Ändern der Berechtigungen von MySQL

    sudo chown -R _mysql:mysql /usr/local/var/mysql
  • Starten eines MySQL-Prozesses

    sudo mysql.server start

Um viele großartige und nützliche Antworten hinzuzufügen, die hier und aus vielen verschiedenen Beiträgen bereitgestellt wurden , geben Sie den Host an, wenn die oben genannten Befehle dieses Problem nicht für Sie gelöst haben, d. H.

mysql -u root -p h127.0.0.1
mondieki
quelle
Für mich war es das Berechtigungsproblem
pfwd
es sollte sein: mysql -u root -p -h127.0.0.1
Duc Chi
Wow, so eine bessere Lösung, als alle meine lokalen Sachen auszulöschen. Dies war eine schnelle Lösung!
Jordanien
Ich habe es oben versucht, aber irgendwann hat es funktioniert: sudo chown -R $ (whoami) $ (brauen - Präfix) / *
Kiran Ruth R
15

Warnung - Diese Methode entfernt alle Ihre Datenbanken im /usr/local/var/mysqlOrdner

Ich hatte MySQL mit Homebrew installiert, und das einzige, was dies für mich behoben hat, war die Neuinstallation von MySQL.

Auf meinem Firmen-Laptop hatte ich keine Berechtigung, MySQL über Homebrew von meinem Computer zu deinstallieren:

$ brew uninstall mysql --ignore-dependencies
Uninstalling /usr/local/Cellar/mysql/8.0.12... (255 files, 233.0MB)
Error: Permission denied @ dir_s_rmdir - /usr/local/Cellar/mysql/8.0.12

Also habe ich stattdessen MySQL manuell entfernt und neu installiert:

$ sudo rm -rf /usr/local/Cellar/mysql
$ brew cleanup
$ sudo rm -rf /usr/local/var/mysql
$ brew install mysql

Und das hat funktioniert!

yndolok
quelle
Warnung - Diese Methode entfernt alle Ihre Datenbanken (im Ordner / usr / local / var / mysql).
Johnsampson
13

Im Folgenden sind die neuesten Anweisungen aufgeführt, brew install mysqldamit neuere Suchanfragen für dieses Problem von Nutzen sein können:

$ brew install mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.6.26.yosemite.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.6.26.yosemite.bottle.1.tar.gz

To connect:
    mysql -uroot

To have launchd start mysql at login:
  ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
  mysql.server start

In meinem Fall habe ich MySQL jetzt über geladen launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plistund konnte dann starten $ mysqlund mich auf den Weg machen.

Ich hoffe, dies hilft den jüngsten Problemlösern!

ggentzke
quelle
11

Ihr MySQL-Server scheint nicht gestartet zu sein. Normalerweise führe ich den Befehl stop aus und starte ihn dann erneut:

mysqld stop
mysql.server start

Gleicher Fehler, und das funktioniert bei mir.

Prakhar Agarwal
quelle
9

Dies hat mein Problem behoben, als ich den MySQL-Dienst neu gestartet habe. Renn einfach:

brew services start mysql
pmventura
quelle
8

Dieses Problem im Zusammenhang mit dem /usr/local/var/mysqlOrdnerzugriff. Ich entferne diesen Ordner und installiere mysql neu.

  1. Deinstallieren Sie MySQL mit Brew:

    brew uninstall mysql

  2. sudo rm -r /usr/local/var/mysql

  3. brew install [email protected]
  4. mysql -u root

Diese Lösung funktioniert gut für mich! ABER SIE VERLOREN ALLE IHRE DATENBANKEN! WARNUNG!

Barsmaga
quelle
2
Dies wird das Problem höchstwahrscheinlich beheben. Zukünftige Leser sollten jedoch gewarnt sein, dass dadurch alle Ihre Datenbanken gelöscht werden. Es ist im Grunde eine harte Neuinstallation von MySQL. Ich weiß, dass der Kontext der Frage eine Neuinstallation war, aber einige Leute, die scannen, versuchen dies möglicherweise einfach, ohne zu wissen, welchen Schaden dies bei einer vorhandenen / Produktionsinstallation verursachen könnte.
efru
1
Dies ist eigentlich keine Lösung. Dies ist "Haben Sie versucht, es ein- und auszuschalten?"
Berry M.
6

Oh, das hat eine Weile gedauert, bis ich es herausgefunden habe. Ich habe es in einem Kommentar gesehen. Nachdem Sie MySQL mit Brew installiert und den Dienst gestartet haben (möglicherweise mit sudo brew services start mysql), führen Sie Folgendes aus:

$ mysqld

Und MySQL sollte danach für Sie laufen.

FooBar
quelle
5

Für mich war es so einfach wie Laufen:

/usr/local/opt/mysql/bin/mysqld_safe

anstatt mysqld

Kenny Cason
quelle
1
Das hat bei mir funktioniert. Ich weiß nicht warum, aber es kann mit einem Mac OS-Neustartfehler auf meinem Computer zusammenhängen
kraftydevil
3

Ich habe die Lösung für mein Problem gefunden. Es war in der Tat, weil mein MySQL-Server nicht lief.

Dies wurde dadurch verursacht, dass MySQL auf meinem Computer nicht korrekt eingerichtet war und daher nicht ausgeführt werden konnte.

Um dies zu beheben, habe ich ein Skript verwendet, das MySQL unter Mac OSX Mountain Lion installiert installiert, auf dem fehlende Dateien installiert sein müssen.

Hier ist der Link: http://code.macminivault.com/

Wichtiger Hinweis: Dieses Skript legt das Root-Passwort als zufällig generierte Zeichenfolge fest, die auf dem Desktop gespeichert wird. Achten Sie daher darauf, diese Datei nicht zu löschen und das Passwort zu notieren. Außerdem wird MySQL Manager in Ihren Systemeinstellungen installiert. Ich bin mir auch nicht sicher, ob vorhandene Datenbanken entfernt werden. Seien Sie also vorsichtig.

kluge Bohnen
quelle
3

In meinem Fall ging es einfach darum, eine Sperrdatei zu löschen.

sudo rm -f /tmp/mysql.sock.lock
Brad Johnson
quelle
3

Ich habe dieses Problem durchgearbeitet und es geschafft, den MySQL-Server mit der folgenden Lösung auszuführen

Installieren Sie MySQL über .dmg( https://dev.mysql.com/downloads/mysql/5.7.html ). Sie erhalten das MySQL-Service-Panel in den Systemeinstellungen. Starten Sie dann MySQL über das Panel und versuchen Sie es

mysql -u root -p

Bilder als Referenz beigefügt

Systemeinstellungen

MySQL-Panel

Aravind Vemula
quelle
2

Nachdem ich einige Stunden daran gearbeitet hatte, ging ich zu / etc / mysql / und bearbeitete die Datei my.cnf. Fügen Sie Folgendes hinzu

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
Jackstine
quelle
1
Dies war auch für mich der Trick, obwohl es für meine os / mysql-Version lautete: /etc/my.conf, und der Socket in /var/lib/mysql/mysql.sock /var/log/mysqld.log sollte zeigen Sie dorthin, wo sich die Socket-Datei befindet.
Keithpjolley
1

Ich habe alle möglichen Möglichkeiten ausprobiert, um dieses Problem zu lösen, z. B. ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock. Deinstallieren und installieren Sie mysql erneut. Stellen Sie sicher, dass mysql auf xampp ausgeführt wird, aber nichts davon funktioniert noch .

Schließlich öffne ich my.cnf (Konfigurationsdatei) und kopiere den Socket-Pfad (stellen Sie sicher, dass Sie den vollständigen Pfad kopieren, sonst funktioniert es nicht). Dann führe ich diesen Befehl in meinem Terminal aus

mysql --socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

Siehe da, MySQL startet.

Diese Lösung funktioniert nur, wenn MySQL unter Xampp / Ampps ausgeführt wird. Im Terminal wird jedoch immer noch keine Verbindung zum richtigen Socket hergestellt, wenn Sie bereits Folgendes versucht haben:

./mysql -u root

oder

brew services start mysql

Ich hoffe das hilft!

Kate Lee
quelle
Ich habe auch jede vorgeschlagene Lösung aus diesem Beitrag ausprobiert, und es hat nicht funktioniert. Benötigen Sie xampp installiert? Ich bin damit nicht vertraut. Ich habe nur die GPL-Version des MySQL-Servers von der offiziellen Website (.DMG) installiert. Ich glaube nicht, dass ich diese App habe - XAMPP. Können Sie bitte näher darauf eingehen? Vielen Dank.
Spencer Trinh
1

nur das hat den Trick für mich gemacht brew services start --all (nachdem ich alle Antworten ausprobiert habe)

user10604324
quelle
2
Erklären Sie, wie es mit der Frage zusammenhängt.
Mentallurg
1

Ich würde dir empfehlen zu rennen

  mysql.server start

bevor ich zu gehe

  mysql -u root -p

Um sicherzustellen, dass der MySQL-Server ausgeführt wird, bevor Sie versuchen, sich anzumelden

Dies passiert oft, wenn Sie einen Computer starten / neu starten, auf dem kein MySQL-Server ausgeführt wird.

mwangaben
quelle
1

Ich komme immer wieder auf diesen Beitrag zurück. Ich bin mehrmals auf diesen Fehler gestoßen. Möglicherweise hat dies mit dem Importieren aller meiner Datenbanken nach einer Neuinstallation zu tun.

Ich benutze Homebrew. Das einzige, was es früher für mich repariert hat:

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

Heute Morgen kehrte das Problem zurück, nachdem meine Maschine beschlossen hatte, über Nacht herunterzufahren. Das einzige, was es jetzt behoben hat, war ein Upgrade von MySQL.

brew upgrade mysql
JKL
quelle
0

In meinem Fall gab der Zugriff auf mysql vom Terminal aus direkt nach der Installation des MAMP den gleichen Socket-Fehler aus. Am Ende wollte es nur einen Neustart und es funktioniert.

Diwaker Tripathi
quelle
0

Viele andere hilfreiche Antworten hier, aber nichts hat dies für mich behoben. Letztendlich würde nichts, was ich auf dieser oder anderen Seiten gefunden habe, eine Version von MySQL von Homebrew für mich zum Laufen bringen.

Es war super schmerzlos, die DMG einfach von https://dev.mysql.com/downloads/file/?id=479114 herunterzuladen (finden Sie die entsprechende Version, die Sie benötigen) und den Assistenten sie für mich installieren zu lassen. Der einzige andere manuelle Schritt war das Hinzufügen /usr/local/mysql/binzu meinem PFAD.

Ich würde diese Option empfehlen, wenn das Brauen Ihnen Probleme bereitet.

Update - Wenn dies immer noch nicht behoben werden kann, versuchen Sie, MySQL vollständig zu löschen, bevor Sie es über DMG installieren. Befolgen Sie diese Anweisungen: https://gist.github.com/vitorbritto/0555879fe4414d18569d

Patrick
quelle
Ich habe auch über die DMG-Datei installiert, aber ich erhalte immer noch diesen Socket-Fehler. mysql --version funktioniert für mich und --help, aber sonst nichts. Ich habe path hinzugefügt, damit die Befehle --version und --help funktionieren. Können Sie uns bitte einen Rat geben? Vielen Dank.
Spencer Trinh
Lesen Sie zuerst das Update zum Löschen von MySQL. Das hat es für mich und mehrere Mitarbeiter behoben.
Patrick
0

Versuche dies

rm -rf /usr/local/var/mysql && brew postinstall mysql@5.7 && brew services restart mysql@5.7
Golam Sorwar
quelle
0

Nach dem Upgrade auf Catalina OS ist ein ähnliches Problem aufgetreten. Nachdem ich den Befehl mysqld ausgeführt hatte, stellte ich fest, dass ein Problem mit der Protokolldatei aufgetreten war. Für andere könnte es anders sein.

$ mysqld

Problem war

2019-10-16T04:58:59.174474Z 0 [ERROR] Could not open file '/var/log/mysql/error.log' for error logging: No such file or directory
2019-10-16T04:58:59.174508Z 0 [ERROR] Aborting

Behebung des Problems durch Erstellen und Anwenden der entsprechenden Berechtigungen.

sudo mkdir -p /var/log/mysql
sudo touch /var/log/mysql/error.log
sudo chown -R _mysql:mysql /var/log/mysql/

Starten Sie MySQL neu

brew services restart mysql@5.7

Problem wurde behoben.

mysql -uroot -proot
Saif Khan
quelle
0

Nachdem Sie viele Lösungen ausprobiert haben, scheint es, als ob derjenige, der es endlich geschafft hat, die Verbindung über IP hergestellt hat. Keine Dateisockets mehr, die zufällig gelöscht werden.

Aktualisieren Sie einfach Ihre MySQL-Client-Konfiguration (z. B. /usr/local/etc/my.cnf) mit:

[client]
port = 3306
host=127.0.0.1
protocol=tcp
Nikodemuz
quelle
-4
  1. Deinstallieren Sie MySQL.
  2. Entfernen /usr/local/var/mysql/ .
  3. Installieren Sie MySQL.
Amod Kulkarni
quelle
1
Wird dies nicht alle Datenbanken wegblasen, die Sie möglicherweise haben? Scheint mir eine ziemlich hartnäckige Lösung zu sein, besonders wenn man bedenkt, dass es wahrscheinlich nur ein Problem ist, dass MySQL nicht läuft.
Martin Tournoij
Ja, aber gemäß der Frage war dies eine Neuinstallation und daher wurde davon ausgegangen, dass es keine Datenbanken geben würde.
Amod Kulkarni