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

У меня странная ситуация. Когда я пытаюсь подключиться к базе данных 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

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

1 Ответ

5 голосов
/ 08 января 2010

Я сталкивался с этим время от времени. Чаще всего объяснение объясняется тем, что 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 .

...