powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Windows+php+mssql 2008 R2
9 сообщений из 9, страница 1 из 1
Windows+php+mssql 2008 R2
    #38595851
s_vist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тема, возможно избитая, но пока не могу побороть.
Есть связка Windows 8, на которой поставлен Wamp 32-bit(с php 5.3.13), и сервер MSSQL 2008 R2. На этой же машине поставлен MSSQL native client 10.0 и добавлено расширение php_sqlsrv_53_ts_vc9.dll.
Тестим подключение к ms sql следующим скриптом:
<?php

function FormatErrors( $errors )
{
echo "Error information:
";

foreach ( $errors as $error )
{
echo "SQLSTATE: ".$error['SQLSTATE']."
";
echo "Code: ".$error['code']."
";
echo "Message: ".$error['message']."
";
}
}

$serverName = " 10.1.1.232";
$connectionInfo = array( "Database"=>"test", "UID"=>"sa", "PWD"=>"sapassword");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{ die( FormatErrors(sqlsrv_errors()) ); }

var_dump($conn);
?>

На что получаем сообщение об ошибке
Error information: SQLSTATE: 08001 Code: 10061 Message: [Microsoft][SQL Server Native Client 10.0]TCP Provider: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. SQLSTATE: HYT00 Code: 0 Message: [Microsoft][SQL Server Native Client 10.0]Login timeout expired SQLSTATE: 08001 Code: 10061 Message: [Microsoft][SQL Server Native Client 10.0]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.

Отмечу, что брандмауэр выключен и на сервере, и на клиенте. Я пробовал в имени сервера добавлять имя экземпляра "10.1.1.232\testsql", на что получал другую ошибку:
Error information: SQLSTATE: 08001 Code: 11001 Message: [Microsoft][SQL Server Native Client 10.0]TCP Provider: Этот хост неизвестен.

Пробовал указывать порт 1433 вручную - никаких изменений. Еще отмечу, что удаленные соединения на сервер разрешены, я могу подключиться с Management Studio, установленной на клиенте, а так же из командной строки с указанием именованного экземпляра:
sqlcmd -S 10.1.1.232\testsql -U sa -P sapassword

В сторону чего еще можно копать?
...
Рейтинг: 0 / 0
Windows+php+mssql 2008 R2
    #38595941
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$serverName = " 10.1.1.232\testsql";

а если так?
...
Рейтинг: 0 / 0
Windows+php+mssql 2008 R2
    #38595954
s_vist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow,
Я так тоже пробовал
Ошибка такая
Error information: SQLSTATE: 08001 Code: 11001 Message: [Microsoft][SQL Server Native Client 10.0]TCP Provider: Этот хост неизвестен.
...
Рейтинг: 0 / 0
Windows+php+mssql 2008 R2
    #38595990
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а localhost?
...
Рейтинг: 0 / 0
Windows+php+mssql 2008 R2
    #38596105
s_vist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow,

ну у меня sql сервер и веб-сервер на разных машинах, но если я прописываю имя хоста, то результат все тот же ,что и с ip-адресом
...
Рейтинг: 0 / 0
Windows+php+mssql 2008 R2
    #38596228
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если там апач или что рарегистрирован как сервис, посмотрите что он не от Local System

ну или попробуйте через php-cli запустить.
...
Рейтинг: 0 / 0
Windows+php+mssql 2008 R2
    #38599000
s_vist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Апач настроил на запуск от Network Service - ничего не изменилось
Запустил скрипт через php-cli - и та же самая ошибка, что и через веб. Самое интересное, что когда-то вся эта связка(Windows 8 + WAMP + MSSQL 2008 R2) у меня работала.
...
Рейтинг: 0 / 0
Windows+php+mssql 2008 R2
    #38600701
s_vist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как оказалось, проблема на стороне конкретного сервера SQL. Подключение через данный скрипт у другому серверу заработало сразу же, как заработало и подключение к нему же через драйвер pdo_mssql. В чем именно проблема SQL сервера, пока непонятно.
...
Рейтинг: 0 / 0
Windows+php+mssql 2008 R2
    #38601687
s_vist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашлась и причина, и решение.
Когда я проверял коннект к серверу при помощи sqlcmd, то обращался к серверу с указанием именованного экземпляра, т.е. на порт 1434, который слушает служба SQL Browser.
Я не знаю почему, но драйвер php sqlsrv плохо относится к именованным экземплярам, и многие источники рекомендуют в строке подключения указывать только адрес, без указания именованного экземпляра. В таком случае соединение происходит по порту 1433.
вот тут оказалось, что недостаточно было, чтобы этот порт был указан как tcp-порт для ip-адресов 127.0.0.1 и адреса ethernet-интерфейса. В конфигурации сервера(Диспетчер конфигурации - Сетевая конфигурация SQL сервер - протоколы для <имя экземпляра> - TCP-IP - IP-адреса) есть группа параметров IPAll, вот там тоже надо было указать порт (1433), чтобы соединения на порт 1433 заработали.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Windows+php+mssql 2008 R2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]