Нет соединения с SQL Server 2005

Discussion in 'Windows' started by Kuzya, 29 Apr 2009.

  1. Kuzya

    Kuzya Elder - Старейшина

    Joined:
    27 Apr 2008
    Messages:
    166
    Likes Received:
    106
    Reputations:
    30
    Поставил 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". Зато нашёл следующую строку:
    Если я всё правильно понимаю то здесь сообщается что сервер стал доступен на любом 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 прошло нормально? Я уже не знаю что делать, весь вечер промучался.
     
  2. nec

    nec Elder - Старейшина

    Joined:
    6 Jul 2005
    Messages:
    98
    Likes Received:
    20
    Reputations:
    1
    вот что товарищ по этому поводу отписал


    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 (в меню) и разреши удаленные подключения..
     
    #2 nec, 30 Apr 2009
    Last edited: 30 Apr 2009
    1 person likes this.
  3. Kuzya

    Kuzya Elder - Старейшина

    Joined:
    27 Apr 2008
    Messages:
    166
    Likes Received:
    106
    Reputations:
    30
    Спасибо огромное! Всё заработало =)