Диагностика соединения с SQL Server

я пытаюсь создать соединение ODBC с SQL Server, но когда я это делаю, я получаю сообщение об ошибке:

Connection failed:
SQLState: '01000'
SQL Server Error: 10060
[Microsoft][ODBC_SQL Server Driver][TCP/IP Sockets] COnnectionOpen (Connect()).
Connection failed:
SQLState: '08001'
SQL Server Error: 17
[Microsoft][ODBC_SQL Server Driver][TCP/IP Sockets] SQL Server does not exist or access denied.

Вот'что ямы пробовали:

не проблема с брандмауэром: попытка с брандмауэром на SQL Server выключена, а клиент выключен. Также в состоянии telnet 1433 от клиента, и это прекрасно работает.не проблема доступа: я могу войти с разных компьютеров, включая сам SQL Server, используя учетную запись i 'используя на клиенте (используя проверку подлинности SQL Server)я могу пинговать имя хоста и IP-адрес. (я'пробовал оба)

Единственное, о чем я могу подумать, это то, что клиентский компьютер - это Windows Server 2003 и имеет различные настройки ролей:

Файловый серверСервер приложенийТерминальный серверКонтроллер доменаDNS-сервер

Я нене знаю, почему эти службы настроены, но пока я не могуотключи их. Будет ли это какой-либо из них, и если да, есть ли способ отключить любой из их аспектов, который может блокировать SQL.

Любой совет действительно ценится!

 russds15 нояб. 2012 г., 21:05
другое дело: яЯ могу создавать соединения ODBC от других клиентов нормально. Похоже, что проблема связана с этим конкретным клиентом, либо с настройкой ролей, либо, возможно, с чем-то еще. Спасибо!

Ответы на вопрос(4)

По умолчанию SQL Native Client ищет экземпляр MSSQLSERVER. Тем не менее, если вы используете SQLEXPRESS, все соединения через это не удастся.

Очень странно, но попробуйте установить SQL Server с именем экземпляра MSSQLSERVER - он должен работать!

Чтобы создать новый источник данных для SQL Server, выполните следующие действия:

В главном компьютере / сервере перейдите в Sql server management studio -> откройте секцию безопасности слева -> щелкните правой кнопкой мыши на Login, выберите New Login, а затем создайте новую учетную запись для своей базы данных, к которой вы хотите подключиться.

Убедитесь, что протокол TCP / IP включен. перейти ко всем программам -> Microsoft SQL Server 2008 -> Инструменты настройки -> Откройте диспетчер конфигурации сервера Sql. С левой стороны выберите клиентские протоколы (в зависимости от вашей операционной системы 32/64 бит). Справа проверьте, включен ли протокол TCP / IP.

В разделе Удаленный компьютер / сервер откройте Администратор источника данных. Панель управления -> Административные инструменты -> Источники данных (ODBC).

В пользовательском DSN или системном DSN нажмите кнопку «Добавить», выберите драйвер Sql Server и нажмите «Готово».

Введите имя.

Введите сервер, обратите внимание, что: если вы хотите ввести адрес хост-компьютера, вы должны ввести этот IP-адрес без "\\», например. 192.168.1.5 и нажмите Далее.

Выберите С помощью аутентификации SQL Server, используя идентификатор пользователя и пароль, введенные пользователем.

Внизу введите свой логин и пароль, которые вы создали на первом шаге. и затем нажмите Далее.

Если показанная База данных является вашей базой данных, нажмите Далее, а затем Готово.

Решение Вопроса

Нашел проблему. По какой-то причине, хотя SQL не использовался на клиенте, он был установлен и, перейдя во Все программы -> Microsoft SQL Server -> Утилита Client Network Utility, я обнаружил, что протокол TCP / IP использовал порт 4717. Я понятия не имею, почему этот порт использовался, и даже больше, яЯ не уверен, почему это вообще имеет значение - я просто настраивал соединение odbc, и вообще не использовал sql server (на клиенте). В любом случае, я изменил это на типичный порт (1433), и, как boom, ODBC-соединение работает как шарм!

Возможно ли, что рассматриваемый сервер не был настроен на использование именованных каналов?

ПРИЧИНА

Самая распространенная причина неудачной попытки подключения заключается в том, что этот источник данных DSN или ODBC пытался установить подключение с помощью сетевой библиотеки сокетов TCP / IP, которая называется Dbmssocn.dll. Поскольку SQL Server не прослушивает входящие соединения для клиентов сокетов TCP / IP, соединение не устанавливается. От ISQL / w будет возвращено второе сообщение об ошибке, указанное выше. Ошибка ОС - 10061, и сбой вызова функции - ConnectionOpen (connect ()).

Временное решение

По умолчанию SQL Server будет прослушивать входящие подключения, сделанные клиентами именованных каналов. Именованные каналы - это механизм IPC по умолчанию для подключения клиентов к серверу SQL Server версий 4.2, 6.0 и 6.5. DLL-файл Named Pipes - это Dbnmpntw.dll, и она должна находиться в каталоге Windows \ System или Winnt \ System32. DLL-библиотека netlib для сокетов TCP / IP называется Dbmssocn.dll и также должна находиться в каталоге Windows \ System или Winnt \ System32. Наиболее распространенное решение этой проблемы - настроить клиентский компьютер для подключения с использованием именованных каналов. Настройка именованных каналов Если на компьютере установлены драйверы ODBC для компонентов доступа к данным Microsoft (MDAC), это можно сделать на втором этапе мастера создания нового источника данных.

ПРИМЕЧАНИЕ. Драйверы MDAC можно загрузить с:

http://msdn2.microsoft.com/en-us/data/aa937730.aspx Чтобы настроить клиент, запустите мастер создания нового источника данных, нажмите кнопку «Конфигурация клиента» и выполните следующие действия в зависимости от используемой версии драйвера ODBC для SQL Server:

Для SQL Server ODBC Драйвер версии 3.50

Click the Net Library tab and use the drop down list box to set the 
default network (Net Library) to Named Pipes.
On the Advanced tab, remove any advanced entries that reference the 
server you are connecting to.
Click Done.

Для SQL Server ODBC Драйвер версии 3.70

In the Network Libraries section of the Edit Network Library Configuration 
dialog box, select Named Pipes.
Click OK.

Если у вас не установлены драйверы MDAC ODBC, вы можете использовать утилиту настройки клиента SQL Server, чтобы установить для сетевой библиотеки по умолчанию Именованные каналы. Вы можете установить клиентские утилиты с компакт-диска SQL Server из каталога i386.

Источник:http://support.microsoft.com/kb/195566

 russds15 нояб. 2012 г., 21:40
Ну яя пытаюсь использовать TCP / IP, именно так мы обычно настраиваем соединения ODBC с этой базой данных. Спасибо хоть.

Ваш ответ на вопрос