ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
Нет соединения с SQL Server 2005 |

29.04.2009, 21:59
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
Нет соединения с SQL Server 2005
Поставил MsSQL Server 2005. Конечная задача - сделать веб-приложение с его использованием. Когда запускаю "Managment Studio Express" то соединение проходит на ура (вдруг важно - использую авторизацию SQL Server, пользователь sa). Но при попытке соединения другими программами (например MSSQL Maestro или просто mssql_connect) всегда одна и та же ошибка - нет соединения. Первое что пришло в голову это ограничения безопасности. Тут же залез в "Средства настройки"->"Настройки контактной зоны SQL Server 2005"->"Настройки контактной зоны для служб и соединений". Выбрал "Database Engine"->"Удалённые соединения" и включил там 2 пункта - "Локальные и удалённые соединения" и "Использовать TCP/IP и именованные каналы". Не помогло, всё та же ошибка. Затем полез в гугл искать решения. Чего только не нашёл. Пойду по порядку. В PHP как только не писал:
mssql_connect("localhost","sa","123");
mssql_connect("COMP\SQLEXPRESS","sa","123");
mssql_connect("COMP\SQLEXPRESS,1433","sa","123");
mssql_connect("192.168.244.1","sa","123");
всё равно не работает. Телнет на порт 1433 тоже не пашет, нет этого порта и в netstat`e. На одном из форумов я увидел пример записи в логах где SQL Server сообщал о том что он успешно запустился и привязался к порту 1433. У себя я такого не нашёл, не нашёл и ошибок типа "socket bind field". Зато нашёл следующую строку:
2009-04-29 23:38:26.48 Сервер Server is listening on [ 'any' <ipv4> 1031].
Если я всё правильно понимаю то здесь сообщается что сервер стал доступен на любом IP, порт 1031. Телнет на этот порт работает, но соединение, например так:
mssql_connect("127.0.0.1,1031","sa","123");
или так
mssql_connect("COMP\SQLEXPRESS,1031","sa","123");
не канает. Дальнейшие пытки гугла дали информацию о существовании утилиты cliconfig.exe, с помощью которой можно настроить порт сервера. Запустив его я обнаружил что все протоколы и типы доступа находятся в выключенном состоянии. Я выделил "TCP/IP" и "Именнованые каналы" и нажал "Включить". Они перенеслись в список включенных. Опять соединения нет. Решил я с помощью этой же программы поменять порт с 1031 на стандартный. Но зайдя в свойства TCP/IP-соединений я обнаружил что порт стоит = 1433.
Подскажите пожалуйста, что же нужно сделать что бы соединение у PHP с MsSQL прошло нормально? Я уже не знаю что делать, весь вечер промучался.
|
|
|

30.04.2009, 11:14
|
|
Участник форума
Регистрация: 06.07.2005
Сообщений: 115
Провел на форуме: 959535
Репутация:
40
|
|
вот что товарищ по этому поводу отписал
1) На сервере в утилите cliconfg.exe включил протоколы по порядку
Именованные каналы
TCP/IP
Multiprotocol
Потом там же создал 2 псевдонима на TCP/IP и Именнованные каналы
2)В SQL SERVER Configuration Manager в разделе Protocols for MSSQLSERVER включил Named Pipes
3)В SQL SERVER Configuration Manager в разделе Client protocols также включил Named Pipes
4)В папку С:/windows/ скопировал ntwdblib.dll
5)В папку С:/windows/system32/ скопировал ntwdblib.dll
6)Перезапустил сервис MSSQLSERVER
на самом сервере SQL запустите SQL Server Surface Area Configuration (в меню) и разреши удаленные подключения..
Последний раз редактировалось nec; 30.04.2009 в 11:17..
|
|
|

30.04.2009, 18:57
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
Спасибо огромное! Всё заработало =)
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|