Listopad 2014: Jeśli otrzymujesz ten błąd w MySQL 5.6.x na Mac OS X Mavericks lub Yosemite i chcesz używać MySQL lokalnie z PHP (/tmp/mysql.sock to miejsce, w którym PHP PDO spodziewa się znaleźć plik sock), oto, co naprawiło to dla mnie:
1) Odkomentuj domyślne linie pliku konfiguracyjnego homebrew i edytuj jak poniżej
$ sudo vi /usr/local/Cellar/mysql/5.6.21/my.cnf
...
basedir = /usr/local/Cellar/mysql/5.6.21
datadir = /usr/local/var/mysql
port = 3306
server_id = <UNIQUE_NUMBER_HERE_OR_LEAVE_COMMENTED_OUT>
socket = /tmp/mysql.sock
pid-file = /usr/local/var/mysql/[BOXNAME].local.pid
....
BOXNAME jest tym, co masz w ustawieniach Systemowych -> Sieć, jako unikalny identyfikator komputera w sieci.
2) Ustaw uprawnienia do wszystkich plików w mysql datadir. Wszystkie były własnością [moja_nazwa_użytkownika]. MySQL jest bardzo wybredny w tej kwestii i odmawia utworzenia pliku pid, chyba że to on (użytkownik _mysql) jest właścicielem katalogu.
$ sudo chown -R _mysql:mysql /usr/local/var/mysql
3) Uruchom MySQL za pomocą skryptu pomocniczego / opakowującego bash:
$ sudo mysql.server start
Starting MySQL
. SUCCESS!
Mam nadzieję, że to pomoże. Jeśli powyższe nie działa, spróbuj ręcznie uruchomić plik binarny mysqld_safe w katalogu Cellar / mysql / VERSION_ / bin / i sprawdź, jakie są ustawienia (jeśli działa)
sudo /usr/local/Cellar/mysql/5.6.12/bin/mysqld_safe &
Jeśli to działa, możesz
ps aux | grep mysql
i zobacz coś takiego
[username] 6881 0.0 2.7 3081392 454836 ?? S 8:52AM 0:00.54 /usr/local/Cellar/mysql/5.6.21/bin/mysqld
Nie jestem pewien, dlaczego to zadziałało, ale pokazuje, skąd mam opcje pliku konfiguracyjnego my.cnf. Możesz także użyć opcji wiersza poleceń, aby spróbować rozwiązać problem podczas ręcznego uruchamiania mysqld.
Jeśli uruchomisz polecenie zarządzaj uruchomieniem serwera MySQL przy użyciu mysqld_safe, być może będziesz musiał to zrobić, aby go wyłączyć przed wypróbowaniem pomocnika bash mysql.server. Oprzyj się pokusie zabicia -9 [PID], ponieważ możesz uszkodzić swoje dane.
mysqladmin -uroot shutdown
Powodzenia!
sudo chown -R _mysql:_mysql /usr/local/var/mysql