PHP не может подключиться, но SqlPlus может - PullRequest
2 голосов
/ 09 февраля 2012

Вот проблема, которая ошеломляет мои клетки прямо сейчас.

Есть сервер оракула, к которому я хочу подключиться.Я могу легко подключиться к нему с помощью командной строки sqlplus.

Когда я пытаюсь подключиться к базе данных Oracle с помощью PHP, это не удается.Вот подвох, у нас такая же настройка в другом центре обработки данных;PHP-машина пытается подключиться к базе данных Oracle.Я запустил точно такой же код, настроил php одинаково на обеих машинах PHP.

PHP1 может подключаться к Oracle1 как через sqlplus, так и через php.

PHP2 подключается к Oracle2 с помощью sqlplus, но НЕ с PHP.

Существуют брандмауэры и некоторые блокировки портов.Мое текущее объяснение состоит в том, что порт php2, используемый для подключения к oracle2, не является значением по умолчанию 1521, и он блокируется.

Ошибка ora, которую я получаю:

ORA-06413: соединение не установленооткрыть.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 10 февраля 2012

Ошибка указывает, что дескриптор подключения TNS не может быть проанализирован по той или иной причине.Обычно это проблема с системным вызовом, выполняемым Oracle, когда он пытается создать информацию о соединении.

Есть ли какие-либо скобки в имени вашей программы, имени пользователя или имени компьютера?32-битный клиент Oracle в 64-битной ОС Windows случайно?

Попробуйте использовать утилиту tnsping из командной строки.Что это говорит тебе?

0 голосов
/ 09 февраля 2012

Исходя из предоставленной информации, я предпочитаю (сужая ее до причин программирования), что имя базы данных, имя пользователя или пароль, отправленные с проблемного компьютера, содержат escape-последовательность ($, \t, \a, \r и т. Д.) При вводе в сценарий PHP в виде строкового литерала изменяется.

...