BŁĄD 2002 (HY000): Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo „/tmp/mysql.sock”


202

Zainstalowałem MySQL na Mac OS X Mountain Lion homebrew install mysql, ale kiedy próbowałem mysql -u root, otrzymałem następujący błąd:

BŁĄD 2002 (HY000): Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo „/tmp/mysql.sock” (2)

Co oznacza ten błąd? Jak mogę to naprawić?


3
Nie opublikowałem tego jako odpowiedzi, ale musisz się install mysql-serverspakować, nie tylkomysql
Hanky ​​Panky

3
@HankyPanky może to była prawda, kiedy to napisałeś. Ale w 2016 Brew nie mysql-servermusi install.
jjpe,

21
Ważne jest, aby pamiętać, że zainstalowałeś za pomocą Homebrew, więc zignoruj ​​wskazówki inne niż Homebrew i zacznij (i uruchom ponownie po uruchomieniu) za pomocą brew services start mysqllub (jeśli nie chcesz usługi w tle) mysql.server start.
Dave Everitt

1
Mam go do pracy, ale ze starym normalnym mysql 5.7.19. Nowa wersja mysql@5.7 5.7.24nie mogła działać, ponieważ niektóre odniesienia do konfiguracji były nadal połączone ze starym mysql zamiast nowego naparu Cellar mysql@5.7 Keg. Dziękuję, więc próbuję tego później
KeitelDOG

1
Ten błąd może również wystąpić po uruchomieniu, brew upgradektóry spowoduje zainstalowanie nowszej wersji mysql niż wcześniej zainstalowana.
johnsampson

Odpowiedzi:


113

Prawdopodobnie dlatego, że MySQL jest zainstalowany, ale jeszcze nie działa.

Aby sprawdzić, czy jest uruchomiony, otwórz Monitor aktywności i w obszarze „Wszystkie procesy” wyszukaj i sprawdź, czy widzisz proces „mysqld”.

Możesz go uruchomić, instalując „MySQL.prefPane”.

Oto kompletny samouczek, który pomógł mi: http://obscuredclarity.blogspot.in/2009/08/install-mysql-on-mac-os-x.html


95
Właśnie pobiegłem mysqldi to wszystko, był to problem spowodowany złym zamykaniem z powodu pewnego rodzaju twardego resetowania / zamykania systemu.
ProfNandaa,

2
Żadna z sugerowanych metod nie zadziałała. Dla mnie działało, jednak wystąpił problem z pozwoleniem. Uruchomienie sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7rozwiązało problem
FooBar

Podczas przeglądania Monitora aktywności działa mysqlId; aby obejść ten problem, po prostu zatrzymaj mysql, a następnie uruchom go ponownie.
JpersaudCodezit

108

Musisz uruchomić MySQL, zanim będziesz mógł użyć mysqlpolecenia na swoim terminalu. Aby to zrobić, uruchom brew services start mysql. Domyślnie brew instaluje bazę danych MySQL bez hasła roota. Aby zabezpieczyć go uruchomić: mysql_secure_installation.

Aby połączyć biegu: mysql -uroot. rootjest tutaj nazwa użytkownika.


8
Uruchomienie sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7rozwiązało problem
FooBar

1
Dla tych, którzy zastanawiają się, mysql_secure_installationjest skrypt specyficzny dla mariaDB.
T.Woody

3
brew services start mysqlsukces. Ale kiedy biegnę mysql -urootza nim, wciąż ten sam błąd.
Harper Koo,

czy konieczne jest uruchamianie tego za każdym razem, gdy komputer Mac uruchamia się, czy też uruchomi go po usunięciu błędu / utrzymaniu MySQL w działaniu lub uruchomieniu przy starcie?
Connor Leech

Uruchomienie tego raz powinno wystarczyć.
Md Mazedul Islam Khan

90

Stało się to po instalacji homebrew i występuje z powodu problemów z uprawnieniami. Następujące polecenia naprawiły problem.

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

sudo mysql.server start

2
jesteś niesamowity @nirojan, uderzyłem głową w ścianę: thumsup:
Ravi Sharma

Chłodny. Mogę rozwiązać problem po zmianie na inne konto administratora Mac :)
William Wong Garay

Stukrotne dzięki. Trzaskam głową od ponad 5 godzin. Widziałem wiele odpowiedzi w Internecie i tylko to pomogło.
ivange94

Kocham cię @nirojan
Raccoon

Sława! Ale kiedy ponownie uruchomiłem MacBooka, mam ten sam problem.
Junior Gantin

46

Biegać: brew info mysql

I postępuj zgodnie z instrukcjami. Z opisu we wzorze:

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

Mam nadzieję że to pomoże.


35

Jak zauważyli inni, dzieje się tak dlatego, że MySQL jest zainstalowany, ale usługa nie działa. Istnieje wiele sposobów na uruchomienie usługi MySQL, a to, co zadziałało, jest poniżej.

Aby uruchomić usługę:

  1. Przejdź do „Preferencji systemowych”
  2. W dolnym okienku powinna być ikona MySql.
  3. Kliknij dwukrotnie, aby uruchomić „Stan serwera MySQL” i naciśnij przycisk „Uruchom serwer MySQL”

Moja env:

Mac Yosemite 10.10.3

Zainstalowany pakiet: /Volumes/mysql-advanced-5.6.24-osx10.8-x86_64


@HosMercury czy możesz potwierdzić, że masz zainstalowany MySQL
Ithar

Pobieram i instaluję mysql z oficjalnej strony Mysql. To rozwiązanie działa dla mnie. Dzięki :)
鄭元傑

1
Cześć, pobrałem i zainstalowałem również mysql z oficjalnej strony internetowej, ale w okienku preferencji serwer nie jest aktywowany (czerwona kropka), kiedy klikam „uruchom serwer sql”, na sekundę zmienia kolor na zielony, a potem z powrotem na czerwony, nic się nie dzieje. Próbowałem „chown”, dowiązanie symboliczne do tmp / mysql.socket, odinstaluj / przeinstaluj, zapisz mysql, ale wszystko nie powiodło się. instalacja brew daje mi niezadowolony błąd, coś o wymaganiu systemu Sierra lub wyższego. Prowadzę El Capitan. Każda pomoc będzie mile widziana.
Spencer Trinh,

24

Rozwiązania dotyczą:

  • zmiana uprawnień MySQL

    sudo chown -R _mysql:mysql /usr/local/var/mysql
  • Rozpoczęcie procesu MySQL

    sudo mysql.server start

Aby dodać wiele świetnych i przydatnych odpowiedzi, które zostały podane tutaj i z wielu różnych postów, spróbuj określić hosta, jeśli powyższe polecenia nie rozwiązały tego problemu, tj.

mysql -u root -p h127.0.0.1

Dla mnie był to problem z uprawnieniami
pfwd

powinno być: mysql -u root -p -h127.0.0.1
Duc Chi

Wow, takie lepsze rozwiązanie niż wymazanie wszystkich moich lokalnych rzeczy. To była szybka naprawa!
Jordan

Próbowałem powyżej, ale ostatecznie to zadziałało: sudo chown -R $ (whoami) $ (brew --prefix) / *
Kiran Ruth R

15

Ostrzeżenie - ta metoda spowoduje usunięcie wszystkich baz danych w /usr/local/var/mysqlfolderze

Miałem MySQL zainstalowany z Homebrew, a jedyną rzeczą, która to naprawiła, była ponowna instalacja MySQL.

Na laptopie firmowym nie miałem uprawnień do odinstalowania MySQL z mojego komputera za pośrednictwem Homebrew:

$ 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

Zamiast tego usunąłem i ponownie zainstalowałem MySQL ręcznie:

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

I to zadziałało!


Ostrzeżenie - ta metoda usunie wszystkie twoje bazy danych (w folderze / usr / local / var / mysql).
johnsampson

13

Poniżej zamieszczam najnowsze instrukcje, brew install mysqlaby nowsze wyszukiwania tego problemu mogły skorzystać:

$ 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

W moim przypadku załadowałem mysql teraz przez launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plisti byłem wtedy w stanie uruchomić$ mysql i być w drodze.

Mam nadzieję, że pomoże to najnowszym narzędziom do rozwiązywania problemów!


11

Wygląda na to, że twój serwer mysql nie został uruchomiony. Zwykle uruchamiam polecenie stop, a następnie uruchamiam go ponownie:

mysqld stop
mysql.server start

Ten sam błąd i to działa dla mnie.


9

Rozwiązało to mój problem po ponownym uruchomieniu usługi mysql. Po prostu biegnij:

brew services start mysql

8

ten problem związany z /usr/local/var/mysqldostępem do folderu, usuwam ten folder i ponownie instaluję mysql.

  1. odinstaluj mysql z brew:

    brew uninstall mysql

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

  3. brew install mysql@8.0
  4. mysql -u root

To rozwiązanie działa dla mnie dobrze! ALE UTRACIŁEŚ WSZYSTKIE BAZY DANYCH! OSTRZEŻENIE!


2
Prawdopodobnie rozwiąże to problem, jednak dla przyszłych czytelników należy pamiętać, że spowoduje to wymazanie wszystkich baz danych. Jest to w zasadzie trudna ponowna instalacja MySQL. Wiem, że kontekst pytania był świeżą instalacją, ale niektóre osoby skanujące mogą po prostu spróbować tego, nie wiedząc o szkodach, jakie może to spowodować w istniejącej / produkcyjnej instalacji.
poniedziałek

1
To nie jest rozwiązanie. To jest „Czy próbowałeś ponownie włączyć i wyłączyć?”
Berry M.

6

Och, zajęło mi to trochę czasu. Widziałem to w komentarzu. Po zainstalowaniu mysql przy użyciu brew i uruchomieniu usługi (być może przy użyciu sudo brew services start mysql), uruchom:

$ mysqld

I MySQL powinien działać dla ciebie później.


5

Dla mnie było to proste:

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

zamiast mysqld


1
To zadziałało dla mnie. Nie wiem, dlaczego, ale może to być związane z błędem ponownego uruchomienia systemu Mac OS na moim komputerze
kraftydevil

3

Znalazłem rozwiązanie mojego problemu. Było tak, ponieważ mój serwer MySQL nie był uruchomiony.

Było to spowodowane niewłaściwym skonfigurowaniem MySQL na moim komputerze, przez co nie można go uruchomić.

Aby temu zaradzić, użyłem skryptu, który instaluje MySQL na Mac OSX Mountain Lion , który musiał mieć zainstalowane brakujące pliki.

Oto link: http://code.macminivault.com/

Ważna uwaga: ten skrypt ustawia hasło roota jako losowo generowany ciąg, który zapisuje na pulpicie, więc uważaj, aby nie usunąć tego pliku i zanotować hasło. Instaluje również menedżera MySQL w preferencjach systemowych. Nie jestem również pewien, czy usuwa istniejące bazy danych, więc bądź ostrożny.


3

W moim przypadku było to po prostu usunięcie pliku blokady.

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

3

Przeszedłem przez ten problem i udało mi się uruchomić serwer mysql przy użyciu poniższego rozwiązania

Zainstaluj mysql poprzez .dmg( https://dev.mysql.com/downloads/mysql/5.7.html ), dostaniesz panel usługi mysql w preferencjach systemowych, a następnie uruchom mysql z panelu i spróbuj

mysql -u root -p

Obrazy załączone w celach informacyjnych

Preferencje systemu

Panel MySQL


2

Po kilku godzinach pracy nad tym, co działało dla mnie, przejdź do / etc / mysql / i edytuj plik my.cnf. Dodaj następujące

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

1
To również załatwiło sprawę dla mnie, chociaż dla mojej wersji os / mysql było to: /etc/my.conf, a gniazdo było w /var/lib/mysql/mysql.sock /var/log/mysqld.log powinien wskazywać do miejsca, w którym znajduje się plik gniazda.
keithpjolley,

1

Próbowałem wszystkich możliwych sposobów rozwiązania tego problemu, takich jak ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock, odinstaluj i ponownie zainstaluj mysql, upewnij się, że mysql działa na Xampp, ale żaden z nich nadal nie działa .

Na koniec otwieram plik my.cnf (plik konfiguracyjny) i kopiuję ścieżkę gniazda (upewnij się, że skopiowałem pełną ścieżkę, inaczej nie zadziała). Następnie wykonuję to polecenie w moim terminalu

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

Lo, a oto uruchamia się mysql.

To rozwiązanie działa tylko wtedy, gdy MySQL działa na Xampp / Ampps, ale w terminalu nadal nie łączy się z odpowiednim gniazdem, gdy już próbowałeś czegoś takiego:

./mysql -u root

lub

brew services start mysql

Mam nadzieję, że to pomoże!


Próbowałem też każdego sugerowanego rozwiązania z tego postu i to nie zadziałało. Czy potrzebujesz zainstalowanego Xamppa? nie znam tego. Zainstalowałem tylko wersję mysql serwera GPL z oficjalnej strony (.DMG). Nie sądzę, że mam tę aplikację - XAMPP. Czy możesz proszę opracować? Dzięki.
Spencer Trinh,


1

Poleciłbym ci biegać

  mysql.server start

przed pójściem do

  mysql -u root -p

aby upewnić się, że serwer mysql działa przed próbą zalogowania się na nim

Zdarza się to wiele razy podczas uruchamiania / restartowania komputera, na którym nie działa żaden serwer mysql.


1

Wracam do tego postu, napotkałem ten błąd kilka razy. Może to mieć związek z importowaniem wszystkich moich baz danych po nowej instalacji.

Używam homebrew. Jedyną rzeczą, która go kiedyś naprawiła:

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

Dziś rano problem powrócił po tym, jak moja maszyna zdecydowała się na zamknięcie na noc. Jedyną rzeczą, która to teraz naprawiła, była aktualizacja mysql.

brew upgrade mysql

0

W moim przypadku zaraz po zainstalowaniu MAMPa dostęp do mysql z terminala powodował ten sam błąd gniazda. Na koniec wszystko, czego chciał, to ponowne uruchomienie i działa.


0

Wiele innych pomocnych odpowiedzi tutaj, ale nic mnie nie naprawiło. Ostatecznie nic, co znalazłem na tej stronie lub innych, nie dostałoby dla mnie żadnej wersji MySQL od Homebrew.

Pobranie DMG ze strony https://dev.mysql.com/downloads/file/?id=479114 (znajdź odpowiednią wersję) było bardzo bezbolesne i pozwolić, aby kreator zainstalował ją dla mnie. Jedynym ręcznym krokiem było dodanie/usr/local/mysql/bin do mojej ŚCIEŻKI.

Polecam tę opcję, jeśli napar sprawia ci problemy.

Aktualizacja - jeśli to nadal nie rozwiąże problemu, spróbuj całkowicie wyczyścić mysql przed instalacją za pośrednictwem DMG. Postępuj zgodnie z tymi instrukcjami: https://gist.github.com/vitorbritto/0555879fe4414d18569d


Zainstalowałem też za pomocą pliku DMG, ale nadal pojawia się ten błąd gniazda. mysql --version działa dla mnie i --help, ale nic więcej. Dodałem do ścieżki, aby polecenia --version i --help działały. czy możesz udzielić porady? dzięki.
Spencer Trinh,

Najpierw zapoznaj się z aktualizacją dotyczącą czyszczenia mysql. Naprawiłem to dla siebie i kilku współpracowników.
Patrick

0

Spróbuj tego

rm -rf /usr/local/var/mysql && brew postinstall mysql@5.7 && brew services restart mysql@5.7

0

Wystąpił podobny problem po aktualizacji do Catalina OS. Po uruchomieniu polecenia mysqld stwierdziłem, że wystąpił problem z plikiem dziennika. Dla innych może być inaczej.

$ mysqld

Problem był

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

Rozwiązano go, tworząc go i stosując odpowiednie uprawnienia.

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

Uruchom ponownie MySQL

brew services restart mysql@5.7

Problem został rozwiązany.

mysql -uroot -proot

0

Po wypróbowaniu wielu rozwiązań, wydaje się, że tym, który w końcu zrobił tę sztuczkę, było połączenie przez IP. Gniazda plików nie są już losowo usuwane.

Po prostu zaktualizuj konfigurację klienta MySQL (np. /usr/local/etc/my.cnf) Za pomocą:

[client]
port = 3306
host=127.0.0.1
protocol=tcp

-4
  1. Odinstaluj MySQL.
  2. Usuń /usr/local/var/mysql/.
  3. Zainstaluj MySQL.

1
Czy to nie zniszczy wszystkich posiadanych baz danych? Wydaje mi się to dość trudnym rozwiązaniem, szczególnie biorąc pod uwagę, że jest to prawdopodobnie problem z uruchomieniem MySQL.
Martin Tournoij,

tak, ale zgodnie z pytaniem była to nowa instalacja i dlatego założono, że nie będzie żadnych baz danych.
Amod Kulkarni
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.