Musiałem tylko przeinstalować mysql i mam problem z jego uruchomieniem. Nie może znaleźć gniazda (mysql.sock). Problem w tym, że ja też nie. W terminalu Mac OS X 10.4 wpisuję: locate mysql.sock
i wracam /private/tmp/mysql.sock
. Ma sens, że plik gniazda istnieje w tej lokalizacji, ale w rzeczywistości tak nie jest.
Jak mogę znaleźć plik gniazda?
Jeśli locate zwraca fałszywą lokalizację, musi mieć jakąś pamięć i prawdopodobnie indeksy. Jak mogę odświeżyć ten indeks?
mysql
macos
sockets
installation
Tony
źródło
źródło
/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
Odpowiedzi:
aby odpowiedzieć na pierwszą część twojego pytania:
biegać
i sprawdź zmienną „gniazdo”
źródło
mysqladmin variables
. Co robić gdyerror: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
? :)sudo find / -name mysql.sock
z katalogu głównego i nie mogłem znaleźć mysql.sock w dowolnym miejscu w systemie. Zainstalowałem MySQL przy użyciu 64-bitowego pliku dmg dla Mac OS 10.7. Obecnie działa Mavericks.To rozwiązało mój problem
mysql_config --socket
AKTUALIZACJA
mysql_config może nam powiedzieć, gdzie powinien znajdować się plik mysql.sock, ale w moim przypadku plik nie istniał. Więc usunąłem my.cnf:
A następnie ponownie uruchomiłem mysql:
Plik został utworzony i mysql działa teraz dobrze.
źródło
ls: /etc/my.cnf: No such file or directory
Może muszę najpierw go utworzyć?/etc/my.cnf
spróbuj obejrzeć/usr/loca/etc/my.cnf
- @AbhiPlik gniazda powinien zostać utworzony automatycznie podczas uruchamiania demona MySQL.
Jeśli nie zostanie znaleziony, najprawdopodobniej katalog, który ma go zawierać, nie istnieje lub inny problem z systemem plików uniemożliwia utworzenie gniazda.
Aby dowiedzieć się, gdzie powinien znajdować się plik, użyj:
% mysqld --verbose --help | grep ^socket
źródło
mysqld
jest to, że powinien on powiedzieć, gdzie serwer go faktycznie umieścił!To znalazło to dla mnie:
Mac OS X
źródło
Moim problemem był również plik mysql.sock.
Podczas procesu instalacji drupal musiałem powiedzieć, której bazy danych chcę użyć, ale moja baza danych nie została znaleziona
system szuka mysql.sock, ale znajduje się w złym katalogu
wystarczy, że połączysz go;)
Sporo czasu zajęło mi wygooglowanie wszystkich ważnych informacji, ale zajęło mi nawet godziny, aby dowiedzieć się, jak się dostosować, ale teraz mogę przedstawić wynik: D
ps: jeśli chcesz być dokładnie, musisz połączyć swoje
/tmp/mysql.sock-file
(jeśli znajduje się tam również w twoim systemie) do katalogu podanego przez php.ini (lub php.default.ini), gdziepdo_mysql.default_socket= ...
źródło
pdo_mysql.default_socket
musisz zrestartować serwer WWW, aby zmiany zostały załadowanesudo apachectl restart
Otrzymałem dokładną ścieżkę za pomocą:
Ponieważ zwraca to tylko ścieżkę i nie wymaga żadnych danych wejściowych, możesz go potencjalnie użyć w skrypcie powłoki.
Aby to zadziałało, na komputerze musi być aktualnie uruchomiony MySQL. Działa również dla MariaDB.
źródło
Wydaje się, że pierwotne pytania wynikają z nieporozumień dotyczących a) gdzie jest plik i b) gdzie jest poszukiwany (i dlaczego nie możemy go tam znaleźć, gdy wykonujemy locate lub grep). Myślę, że celem Alnitaka było to, że chcesz znaleźć miejsce, z którym był powiązany - ale grep nie pokaże ci linku, prawda? Plik tam nie istnieje, ponieważ jest to link, a to tylko wskaźnik. Nadal musisz wiedzieć, gdzie umieścić link.
mój plik sock jest na pewno w / tmp, a BŁĄD, który otrzymuję, szuka go w / var / lib / (nie tylko / var). Połączyłem teraz z / var i / var / lib i nadal otrzymuję błąd „Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo 'var / lib / mysql.sock' (2)”.
Zwróć uwagę na (2) po błędzie .... Znalazłem w innym wątku, że oznacza to, że gniazdo rzeczywiście mogło zostać użyte, ale coś jest nie tak z samym gniazdem - więc zamknąć maszynę - całkowicie - tak, że gniazdo zamyka się. Następnie ponowne uruchomienie powinno to naprawić. Próbowałem tego, ale u mnie nie zadziałało (teraz pytam czy restartowałem za szybko? Naprawdę?) Może to będzie rozwiązanie dla kogoś innego.
źródło
Spróbuj tego zamiast tego, to zwróci żądany wynik, usuwając niepowiązane informacje.
źródło
Aby odświeżyć bazę danych lokalizacji, uruchomiłem
źródło
(Q1) Jak mogę znaleźć plik gniazda?
Domyślną lokalizacją dla pliku gniazda jest /tmp/mysql.sock, aby znaleźć plik gniazda dla twojego systemu, użyj tego.
Jeśli właśnie zainstalowałeś MySql, plik mysql.sock nie zostanie utworzony, dopóki serwer nie zostanie uruchomiony. Użyj tego polecenia, aby go uruchomić.
sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
Jeśli pojawi się monit o hasło, możesz podać nazwę użytkownika root lub inną podobną nazwę użytkownika. Terminal poprosi o podanie hasła.
mysqladmin --user root --password variables | grep socket
(Q2) Jak mogę odświeżyć lokalizację indeksu
Odśwież lokalizację bazy danych za pomocą tej komendy.
źródło
Otrzymuję ten sam błąd w systemie Mac OS X 10.11.6:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Po wielu męczarniach i przekopaniu się przez porady tutaj i powiązane pytania, z których żadna nie rozwiązała problemu, wróciłem i usunąłem zainstalowane foldery i po prostu to zrobiłem
brew install mysql
.Nadal pojawia się ten sam błąd w przypadku większości poleceń, ale to działa:
/usr/local/bin/mysqld
i zwraca:
źródło
W ogóle nie mogłem znaleźć gniazda mysql, więc ponownie zainstalowałem serwer mysql (wszystkie tabele i ustawienia phpmyadmin zostały zachowane). Oto polecenia:
1) Zainstaluj
2) Postępuj zgodnie z krokami konfiguracji terminala
3) Sprawdź stan: (Powinien zwrócić „Aktywny: aktywny (działa)”)
źródło
Niestety żadna z powyższych nie zadziałała w moim przypadku. Ale w końcu znalazłem rozwiązania.
Aby dowiedzieć się, gdzie jest plik mysql.sock, po prostu otwórz menedżera xampp, wybierz MySQL i kliknij Konfiguruj po prawej stronie. Na panelu konfiguracji kliknij Otwórz plik konf i po prostu wyszukaj mysql.sock, naciskając skrót CMD + F.
W moim przypadku właściciel mysql.sock został zmieniony i musiałem zmienić go z powrotem na administratora root za pomocą: chmod root: admin mysql.sock
Następnie uzyskano dostęp do bazy danych.
źródło
Nie mogę pomóc w pytaniu nr 1, ale aby odświeżyć
locate
bazę danych plików, uruchom:źródło