Ноябрь 2014: если вы получаете эту ошибку на MySQL 5.6.x на Mac OS X Mavericks или Yosemite и хотите использовать MySQL с PHP локально (/tmp/mysql.sock - то, где PHP PDO ожидает найти носок файл), вот что исправило это для меня:
1) Раскомментируйте строки файла конфигурации homebrew по умолчанию и отредактируйте, как показано ниже
$ 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 - это то, что у вас в Системных настройках -> Сеть как уникальный идентификатор вашего компьютера в сети.
2) Установите разрешения для всех файлов в mysql datadir. Все они принадлежали [my_username]. MySQL очень разборчив в этом и отказывается создавать pid-файл, если только он (пользователь _mysql) не владеет каталогом.
$ sudo chown -R _mysql:mysql /usr/local/var/mysql
3) Запустите MySQL с помощью скрипта bash helper / wrapper:
$ sudo mysql.server start
Starting MySQL
. SUCCESS!
Надеюсь, это поможет. Если вышеперечисленное не работает для вас, попробуйте запустить двоичный файл mysqld_safe вручную в каталоге Cellar / mysql / VERSION_ / bin / и проверьте настройки (если он работает)
sudo /usr/local/Cellar/mysql/5.6.12/bin/mysqld_safe &
Если это работает, вы можете
ps aux | grep mysql
и увидите что-то вроде
[username] 6881 0.0 2.7 3081392 454836 ?? S 8:52AM 0:00.54 /usr/local/Cellar/mysql/5.6.21/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.21/lib/plugin --verbose --log-error=/usr/local/var/mysql/BOXNAME.local.err --pid-file=/usr/local/var/mysql/BOXNAME.local.pid
Я не уверен, почему это сработало для меня, но оно показывает, откуда я взял параметры файла конфигурации my.cnf. Вы также можете использовать параметры командной строки, чтобы попытаться устранить неполадки при запуске mysqld вручную.
Если вы все-таки запустите управление для запуска сервера MySQL с помощью mysqld_safe, возможно, вам придется сделать это, чтобы отключить его, прежде чем пытаться использовать mysql.server bash helper. Не поддавайтесь желанию убить -9 [PID], потому что вы можете повредить ваши данные.
mysqladmin -uroot shutdown
Удачи!