Назад | Перейти на главную страницу

Проверка того, что SQL Server 2005 прослушивает FreeTDS

Как лучше всего проверить, что SQL Server 2005 прослушивает IP-адрес и порт?

Немного предыстории: я пытаюсь подключить Unix-сервер к SQL Server 2005 с помощью freetds. Однако tsql продолжает говорить мне, что «Adaptive Server недоступен или не существует». Я пытаюсь понять, связана ли проблема с моей конфигурацией SQL Server или FreeTDS. (Сервер SQL в настоящее время используется в качестве источника данных для сервера, на котором запущены некоторые веб-сайты .net; поэтому я склоняюсь к тому, что проблема находится на стороне UNIX)

Вы можете попытаться подключиться к вашему серверу через Telnet на порт 1433. Это порт, который SQL Server прослушивает:

 telnet MySQLServerAddress 1433

Результат должен быть

 Trying 111.222.111.222 ... (example)
 Connected to MySQLServerAddress.

Если вы получаете сообщение об ошибке «Соединение отклонено», значит, что-то не так с сетевым подключением (брандмауэр на сервере, порт SQL Server был изменен по умолчанию, ...)

Чтобы выйти из telnet при подключении, введите escape-символ Ctrl-]. В командном режиме из telnet можно выйти с помощью команды 'quit. '

Если основные сетевые соединения работают, вы можете проверить доступ к серверу базы данных, используя "tssql":

Его можно запустить двумя способами, один из которых использует freetds.conf и тот, который подключается напрямую, используя адрес / имя хоста и порт в обход freetds.conf. Сначала попробуйте подключиться, используя хост и порт:

$ cd src/apps
$ TDSVER=7.0 ./tsql -H SQLServerHost -p 1433 -U user

Если вы получаете сообщение «Ошибка входа в систему», значит, у вас проблема с аутентификацией.

Если вы получили сообщение типа

Msg. Номер: 18450 Уровень серьезности: 14 Состояние: 1 Ошибка входа - Пользователь: loginid Причина: Не определен как действительный пользователь доверенного подключения к SQL Server

SQL Server принимает только «доменные» логины. Это применимо только к Microsoft SQL Server, и вам необходимо, чтобы ваш администратор баз данных проверил, что «вход на сервер» разрешен, или использовал вход в домен.

если вы получили приглашение, попробуйте tsql, используя имя сервера данных (используя freetds.conf):

$ ./tsql -S SQLServerHost -U user

Если это не удается, FreeTDS либо не находит нужный freetds.conf файл, либо в нем есть ошибка.

Я столкнулся с очень похожей проблемой. Мне потребовались часы, чтобы понять, что не так, но в конце концов оказалось, что я пытался подключиться к именованному экземпляру, а стандартный порт 1433 был неподходящим для использования:

Вы подключаетесь к именованному экземпляру sql server? Если да, смотрите здесь:

http://support.microsoft.com/kb/265808