php cli mssql_connect - невозможно подключиться: сервер SQL недоступен - PullRequest
0 голосов
/ 20 марта 2012

Я пытаюсь запустить оболочку с cakephp, но я не могу сделать это из-за ошибки соединения SQL, я всегда получаю это

Предупреждение: mssql_connect (): невозможно подключиться к серверу: XXXXX Я уверен, что конфигурация для источника данных правильная, так как я могу подключиться, используя приложение на стороне веб-сайта.

Кто-нибудь сталкивался с чем-то вроде этого?

Кстативеб-сервер и сервер mssql не совпадают, они находятся на разных хостах.

Информация о среде (я согласен, это беспорядок ...):

  • Веб-сервер
    • Windows server 2003 R2
    • PHP-5.2.4
    • IBM http server 6.1
    • Cakephp 1.2
  • Сервер БД
    • Windows Server 2003 R2
    • Microsoft SQL Server 2005

Я выделил проблему и обнаружил, что она не связана с CakePHP, я создалскрипт с только этой строкой кода

mssql_connect('XXXX', 'YYYY', 'ZZZZ', true);

выдаёт мне ту же ошибку.Это должно быть что-то другое между CLI и тем, как php запускается с HTTP-сервера.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 марта 2012

Вот шаги, которые я выполнил, чтобы сузить, а затем исправить проблему:

  • Проверьте, какой php.ini используется вашим клиентом, выполнив следующую команду: php -i
  • Изолируйте проблему, я думал, что это что-то с cakephp, но в конце каждая проблема связана с одной строкой в ​​php, моя проблема была вокруг этой строки кода mssql_connect('XXXX', 'YYYY', 'ZZZZ', true);
  • На основании предоставленной информации здесь Я обнаружил, что следующая DLL-библиотека устарела или несовместима с Windows Server 2003, просто получите ntwdblib.dll ver. 2000.80.2039.0, используйте эту точную версию, так как другие, как ver.2000.80.194.0, не работали для меня.

Как уже упоминалось @charles, если вы еще не работаете в уже развернутом проекте, используйте драйверы sqlsrv, поскольку они поддерживаются в настоящее время, а mssql в основном устарели.

Спасибо!

0 голосов
/ 21 марта 2012

Убедитесь, что вы указали порт для подключения (обычно 1433). Если это все еще не работает, возможно, вам нужно поиграть с настройками именованных каналов. Более подробную информацию можно найти в комментариях на сайте PHP: http://ca3.php.net/function.mssql-connect

Я бы также посоветовал вам использовать драйверы Microsoft SQL Serv для PHP, они гораздо лучше поддерживаются, чем драйверы mssql. http://www.microsoft.com/download/en/details.aspx?id=20098 Вот статья, объясняющая различия: http://blogs.msdn.com/b/brian_swan/archive/2010/03/08/mssql-vs-sqlsrv-what-s-the-difference-part-1.aspx Если вы действительно пойдете по пути sqlsrv (и я действительно рекомендую вам это сделать), вот параметры подключения: http://php.net/manual/en/function.sqlsrv-connect.php Используйте пример 3 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...