测试 SQL Server 2005 是否正在监听 FreeTDS

测试 SQL Server 2005 是否正在监听 FreeTDS

测试 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 的命名实例?如果是,请参见此处:

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

相关内容