Kuzya
29.04.2009, 21:59
Поставил 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 прошло нормально? Я уже не знаю что делать, весь вечер промучался.
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 прошло нормально? Я уже не знаю что делать, весь вечер промучался.