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?


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 mysql@5.7-Version 5.7.24konnte nicht funktionieren, da einige Konfigurationsreferenzen mit dem alten mysql anstelle des neuen Brew Cellar mysql@5.7 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


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 mysql@5.7lö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.


8
Laufen sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7lö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

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.


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


@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

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!


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!


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.


9

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

brew services start mysql

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 mysql@8.0
  4. mysql -u root

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


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.


5

Für mich war es so einfach wie Laufen:

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

anstatt mysqld


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.


3

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

sudo rm -f /tmp/mysql.sock.lock

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


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

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!


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)


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.


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

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.


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


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

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

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

-4
  1. Deinstallieren Sie MySQL.
  2. Entfernen /usr/local/var/mysql/ .
  3. Installieren Sie MySQL.

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.