pdo_mysql не может создать файл mysqld.sock - PullRequest
1 голос
/ 17 июля 2011

Я добавляю PHP (php-fpm) на существующий сервер Nginx Ubuntu 10.04 и не могу заставить работать pdo_mysql. Я пытаюсь подключиться к серверу MySQL где-то еще, но все ответы Googling, которые я нашел, касаются того, что MySQL не работает на локальном сервере, поэтому я не уверен, что делать дальше.

У меня не установлен mysqld, поэтому я не уверен, что мне это нужно, или есть ли способ обойти это? Также мне интересно, не может ли он создать mysqld.sock, потому что на сервере есть пользователь mysql?

Ошибка:

SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) Fatal error: Call to a member function query() on a non-object

Мой код подключения PHP:

$this->PDO = new PDO('mysql:host=' . $this->config->getValue('db_host') .
                             ';dbname=' . $this->config->getValue('db_name'),
                             $this->config->getValue('db_user'),
                             $this->config->getValue('db_pass'));

Моя строка запроса не срабатывает:

$PDOStatement = $this->PDO->query($query);

Спасибо за любую помощь, спасибо.

Ответы [ 3 ]

1 голос
/ 17 июля 2011

Несколько вещей, которые вы должны проверить

  • D У вас установлен mysql-client ?если вы подключаетесь к удаленной машине.вам не нужно запускать mysql на вашем компьютере, но я думаю, что вам все равно понадобится клиент.Двойная и тройная проверка
  • Наконец, попробуйте подключиться вручную с помощью командной строки с помощью следующей команды.

$ mysql -u <INSERT_USER_HERE> -p -h <INSERT_IP_OF_REMOTE_MACHINE_HERE> <INSERT_DB_NAME_HERE>

Если это не работает.вернуться с точным сообщением об ошибке.

0 голосов
/ 17 июля 2011

Вы уверены, что $this->config->getValue('db_host') возвращает правильное значение?Поведение, которое вы описываете, очень похоже на возвращение пустого или нулевого значения.

0 голосов
/ 17 июля 2011

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

Вам не нужно устанавливать mysqld, но вам нужны клиентские библиотеки MySQL.

...