Я столкнулся с подобной ситуацией и нашел это:
http://ubuntulinuxhelp.com/how-to-use-the-second-network-port-on-your-computer/ [!d1 ]
Но его несколько старый, надеюсь, это помогает.
Ошибка 2002 означает, что MySQL не может подключиться к локальному серверу базы данных через файл сокета (например, /tmp/mysql.sock).
Чтобы узнать, где находится ваш файл сокета, запустите:
mysql_config --socket
затем дважды проверьте, что ваше приложение использует правый файл сокета Unix или подключается через порт TCP / IP.
Проверьте сокет:
mysql --socket=/var/mysql/mysql.sock
Если (например, php.ini).
Чтобы проверить подключение PDO непосредственно от него, вы можете его обозначить, например:
ln -vs /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock
или исправить файл конфигурации PHP, вы можете запустить:
php -r "new PDO('mysql:host=localhost;port=3306;charset=utf8;dbname=dbname', 'root', 'root');"
Проверьте также конфигурацию между Apache и CLI (интерфейс командной строки), поскольку конфигурация может отличаться.
Возможно, сервер работает, но вы пытаетесь подключиться с использованием порта TCP / IP, именованного канала или файла сокета Unix, отличного от того, на котором прослушивается сервер. Чтобы исправить это, вам нужно вызвать клиентскую программу (например, указать параметр --port), чтобы указать правильный номер порта или соответствующий именованный канал или файл сокета Unix (например, --socket).Смотрите: PDO
Другие утилиты / команды, которые могут помочь отслеживать проблему:
netstat -ln | grep mysql php -r "phpinfo();" | grep mysql php -i | grep mysql Используйте XDebug с xdebug.show_exception_trace=1 в вашем xdebug.ini В OS X попробуйте sudo dtruss -fn mysqld, отладить Linux с помощью strace Проверить разрешения на Unix-сокет: stat $(mysql_config --socket), и если у вас достаточно свободное пространство (df -h). Перезагрузите MySQL. Проверьте net.core.somaxconn.