Попытка подключения Mysql работает нормально в 5.2.9, но не в 5.3.0 - помогите?

StackOverflow https://stackoverflow.com/questions/2816915

Вопрос

У меня проблемы с выполнением вторичного подключения MySQL (до отдельной, внешней БД) в моем коде. Он отлично работает в PHP 5.2.9, но не подключается в PHP 5.3.0. Я знаю (по крайней мере) из изменений, необходимых для успешных подключений MySQL в более новой версии PHP, и преуспел раньше, поэтому я не уверен, что это не работает на этот раз.

У меня уже есть соединение БД, открытое в локальную базу данных. Эта функция ниже используется для выполнения дополнительного подключения к отдельному удаленному каталогу. Включенный файл Config Config просто содержит информацию о внешней базе данных (хост, пользователь, пропуск и имя). Я проверил, и он включен правильно.

function connectDP() {
    global $dpConnection;

    include("secondary_db_config.php);
    $dpConnection = mysql_connect($dp_dbHost, $dp_dbUser, $dp_dbPass, true) or DIE("ERROR: Unable to connect to Deployment Platform");
    mysql_select_db($dp_dbName, $dpConnection) or DIE("ERROR 006: Unable to select Deployment Platform Database");
}

Затем я пытаюсь сделать это новое соединение просто, позвонив эту функцию извне:

connectDP();

Но при загрузке страницы (в 5.3.0) я получаю сообщение:

ERROR: Unable to connect to Deployment Platform

Я использую дополнительный new_link флаг булевы как четвертый аргумент в mysql_connect() Функция, и это все еще не работает.

Этим утром я разрушил мою мозгу, пытаясь выяснить, почему эта связь не работает (пока я сделал что-то очень похожее в другом месте до отдельной второй базы данных, которая работает). Любая помощь будет оценена.

Спасибо!

Богатый

Это было полезно?

Решение

Поскольку PHP 5.3 он использует свой собственный драйвер MySQL (MySQLND) по умолчанию вместо libmysqlclient. В зависимости от платформы он не может прочитать значения по умолчанию из файла конфигурации MySQL (например, /etc/mysql/my.cnf). Вам нужно редактировать php.ini И укажите значения по умолчанию для расширения (ы), которые вы используете (MySQL, MySQLI, PDO). Например, в Debian вам необходимо указать путь к розетке (например,. /var/run/mysqld/mysqld.sock) себя в INI-файле. Просто пройдите через файл INI и укажите отсутствующие параметры, и он должен работать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top