测试 SQL Server 2005 是否正在监听 IP 和端口的最佳方法是什么?
背景:我正尝试使用 freetds 将 Unix 机器连接到 SQL Server 2005。但是 tsql 一直告诉我“Adaptive Server 不可用或不存在”。我正试图弄清楚问题出在我的 SQL Server 配置还是 FreeTDS 配置上。(SQL 服务器目前被用作运行某些 .net 网站的服务器的数据源;因此我倾向于认为问题出在 UNIX 方面)
答案1
您可以尝试通过端口 1433 远程登录您的服务器。这是 SQL Server 正在监听的端口:
telnet MySQLServerAddress 1433
输出应该是
Trying 111.222.111.222 ... (example)
Connected to MySQLServerAddress.
如果您收到“连接被拒绝”错误消息,则说明网络通信出现了问题(服务器上的防火墙、SQL Server 端口已从默认端口更改,...)
要在连接后退出 telnet,请键入转义字符Ctrl-]
。进入命令模式后,可以使用命令“ quit
”退出 telnet。
如果基本网络通信正常,您可以使用“ tssql
”测试访问数据库服务器:
它可以通过两种方式运行,一种是使用freetds.conf
,一种是使用地址/主机名和端口绕过直接连接freetds.conf
。首先尝试使用主机和端口进行连接:
$ cd src/apps
$ TDSVER=7.0 ./tsql -H SQLServerHost -p 1433 -U user
如果您收到“登录失败”,则表示您存在身份验证问题。
如果你收到类似这样的消息
消息编号:18450 严重性:14 状态:1 登录失败 - 用户:loginid 原因:未定义为受信任 SQL Server 连接的有效用户
SQL Server 仅接受“域”登录。这仅适用于 Microsoft SQL Server,您需要让您的 DBA 验证是否允许“服务器登录”,或者使用域登录。
如果您收到提示,请尝试使用数据服务器名称(使用 freetds.conf)运行 tsql:
$ ./tsql -S SQLServerHost -U user
如果失败,则说明 FreeTDS 找不到正确的freetds.conf
文件,或者文件中有错误。
答案2
我遇到了一个非常相似的问题。我花了几个小时才弄清楚问题出在哪里,但最终发现我试图连接到命名实例,而标准 1433 端口是错误的:
您是否正在连接到 SQL Server 的命名实例?如果是,请参见此处: