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

6 sql-server-2005

测试 SQL Server 2005 正在侦听 IP 和端口的最佳方法是什么?

一些背景:我正在尝试使用 freetds 将 Unix 框连接到 SQL Server 2005。但是 tsql 一直告诉我“Adaptive Server 不可用或不存在”。我试图弄清楚问题是否出在我的 SQL Server 或 FreeTDS 配置上。(SQL 服务器目前被用作运行一些 .net 网站的服务器的数据源;所以我倾向于 UNIX 端的问题)

spl*_*tne 4

您可以尝试在端口 1433 上远程登录您的服务器。这是 SQL Server 正在侦听的端口:

 telnet MySQLServerAddress 1433
Run Code Online (Sandbox Code Playgroud)

输出应该是

 Trying 111.222.111.222 ... (example)
 Connected to MySQLServerAddress.
Run Code Online (Sandbox Code Playgroud)

如果您收到“连接被拒绝”错误消息,则表明网络通信存在问题(服务器上的防火墙、SQL Server 端口已更改为默认端口等)

要在连接后退出 telnet,请键入转义字符Ctrl-]。一旦进入命令模式,可以使用命令“ quit.”退出 telnet

如果基本网络通信正常,您可以使用“ tssql”测试访问数据库服务器:

它可以通过两种方式运行,一种使用freetds.conf,另一种使用地址/主机名和端口绕过直接连接freetds.conf。首先尝试使用主机和端口进行连接:

$ cd src/apps
$ TDSVER=7.0 ./tsql -H SQLServerHost -p 1433 -U user
Run Code Online (Sandbox Code Playgroud)

如果您收到“登录失败”,则说明您遇到了身份验证问题。

如果您收到类似这样的消息

留言。编号:18450 严重性:14 状态:1 登录失败 - 用户:loginid 原因:未定义为受信任 SQL Server 连接的有效用户

SQL Server 仅接受“域”登录。这仅适用于 Microsoft SQL Server,您需要让 DBA 验证是否允许“服务器登录”,或使用域登录。

如果收到提示,请尝试使用数据服务器名称(使用 freetds.conf)进行 tsql:

$ ./tsql -S SQLServerHost -U user
Run Code Online (Sandbox Code Playgroud)

如果失败,则表明 FreeTDS 未找到正确的freetds.conf文件,或者文件中有错误。