Невозможно подключиться к MySQL через PHP-скрипт при использовании mysqli или PDO, но mysql работает

Я столкнулся с странной ситуацией. Когда я пытаюсь подключиться к базе данных MySql, используя соединение «mysql», оно работает.

mysql connection string -> mysql_connect($HOST, $USER, $PASSWORD, $DB); 

Но соединение сбой происходит немедленно, когда я использую либо «mysqli», либо «PDO»,

 mysqli connection string -> mysqli_connect($HOST, $USER, $PASSWORD, $DB); PDO Connection string -> new PDO("mysql:host=$HOST;dbname=$DB", $USER, $PASSWORD); 

Конкретная ошибка, которую он бросает,

 SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'localhost' (10061 

Можете ли вы, ребята, помочь мне? Благодарю.

Я сталкивался с этим время от времени. Объяснение чаще всего заключается в том, что MySQL Server настроен на использование файла сокета по одному пути, но раздел php.ini на mysqli или pdo_mysql ищет файл сокета по другому пути.

Это происходит со мной, хотя я устанавливаю PHP и MySQL из MacPorts. Вы могли бы подумать, что они согласились бы с конфигурациями для этих двух портов.

Либо отредактируйте свой php.ini чтобы установить правильное расположение файла сокета, либо укажите сокет при запуске соединения с mysqli или pdo_mysql.

 pdo = new PDO("mysql:dbname=test;unix_socket=/opt/local/var/run/mysql5/mysqld.sock", "username", "password") $mysqli = new mysqli("localhost", "username", "password", "test", ini_get("mysqli.default_port"), "/opt/local/var/run/mysql5/mysqld.sock") 

См. Также статью, которую я написал Error2003-CantConnectToMySQLServer .