Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Windows+php+mssql 2008 R2
|
|||
|---|---|---|---|
|
#18+
Тема, возможно избитая, но пока не могу побороть. Есть связка 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 В сторону чего еще можно копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 15:21 |
|
||
|
Windows+php+mssql 2008 R2
|
|||
|---|---|---|---|
|
#18+
$serverName = " 10.1.1.232\testsql"; а если так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 16:02 |
|
||
|
Windows+php+mssql 2008 R2
|
|||
|---|---|---|---|
|
#18+
ScareCrow, Я так тоже пробовал Ошибка такая Error information: SQLSTATE: 08001 Code: 11001 Message: [Microsoft][SQL Server Native Client 10.0]TCP Provider: Этот хост неизвестен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 16:09 |
|
||
|
Windows+php+mssql 2008 R2
|
|||
|---|---|---|---|
|
#18+
а localhost? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 16:23 |
|
||
|
Windows+php+mssql 2008 R2
|
|||
|---|---|---|---|
|
#18+
ScareCrow, ну у меня sql сервер и веб-сервер на разных машинах, но если я прописываю имя хоста, то результат все тот же ,что и с ip-адресом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 17:25 |
|
||
|
Windows+php+mssql 2008 R2
|
|||
|---|---|---|---|
|
#18+
если там апач или что рарегистрирован как сервис, посмотрите что он не от Local System ну или попробуйте через php-cli запустить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 18:44 |
|
||
|
Windows+php+mssql 2008 R2
|
|||
|---|---|---|---|
|
#18+
Апач настроил на запуск от Network Service - ничего не изменилось Запустил скрипт через php-cli - и та же самая ошибка, что и через веб. Самое интересное, что когда-то вся эта связка(Windows 8 + WAMP + MSSQL 2008 R2) у меня работала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 12:20 |
|
||
|
Windows+php+mssql 2008 R2
|
|||
|---|---|---|---|
|
#18+
Как оказалось, проблема на стороне конкретного сервера SQL. Подключение через данный скрипт у другому серверу заработало сразу же, как заработало и подключение к нему же через драйвер pdo_mssql. В чем именно проблема SQL сервера, пока непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2014, 12:50 |
|
||
|
Windows+php+mssql 2008 R2
|
|||
|---|---|---|---|
|
#18+
Нашлась и причина, и решение. Когда я проверял коннект к серверу при помощи sqlcmd, то обращался к серверу с указанием именованного экземпляра, т.е. на порт 1434, который слушает служба SQL Browser. Я не знаю почему, но драйвер php sqlsrv плохо относится к именованным экземплярам, и многие источники рекомендуют в строке подключения указывать только адрес, без указания именованного экземпляра. В таком случае соединение происходит по порту 1433. вот тут оказалось, что недостаточно было, чтобы этот порт был указан как tcp-порт для ip-адресов 127.0.0.1 и адреса ethernet-интерфейса. В конфигурации сервера(Диспетчер конфигурации - Сетевая конфигурация SQL сервер - протоколы для <имя экземпляра> - TCP-IP - IP-адреса) есть группа параметров IPAll, вот там тоже надо было указать порт (1433), чтобы соединения на порт 1433 заработали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2014, 11:36 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38595851&tid=1462920]: |
0ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 339ms |

| 0 / 0 |
