PHP Неустранимая ошибка: исключить исключение «PDOException» с сообщением «SQLSTATE [HY000] [2002] Соединение отклонено

Я столкнулся с подобной ситуацией и нашел это:

http://ubuntulinuxhelp.com/how-to-use-the-second-network-port-on-your-computer/ [!d1 ]

Но его несколько старый, надеюсь, это помогает.

1
задан 11 April 2015 в 00:28

1 ответ

Ошибка 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.
0
ответ дан 23 May 2018 в 21:37

Другие вопросы по тегам:

Похожие вопросы: