Как лучше всего проверить, что 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? Если да, смотрите здесь: