为了进行故障排除,我希望能够检查客户端是否可以连接到SQL Server实例,而与可能无法连接到SQL Server的应用程序无关。
是否有一种简单的方法(即不必安装第三方软件)使用默认的Windows系统工具来执行此操作?也许使用脚本或网络应用程序?
为了进行故障排除,我希望能够检查客户端是否可以连接到SQL Server实例,而与可能无法连接到SQL Server的应用程序无关。
是否有一种简单的方法(即不必安装第三方软件)使用默认的Windows系统工具来执行此操作?也许使用脚本或网络应用程序?
Answers:
如果服务器使用的是TCP / IP,则简单的方法是仅telnet到SQL Server端口并查看其是否连接。默认情况下,该端口为1433,因此应该可以使用:
telnet servername 1433
在大多数情况下,这可能是适当的。
如果使用的是其他端口或动态端口(与命名实例共用),则需要确定当前正在侦听的端口。检查SQL Server配置管理器以查看它是特定端口还是动态端口。如果它正在使用动态端口,那么只要您在服务器上没有多个实例,netstat -abn
它可能就是查找正在使用的内容的最简单方法。否则,请在Windows事件日志或SQL Server错误日志中进行挖掘,以获取指示实例正在使用哪个端口的消息。
如果SQL Server使用的是命名管道,那么我相信如果您能够访问计算机上的共享,则您具有足够的网络连接。本文说,您可以进一步尝试连接IPC $共享:
http://msdn.microsoft.com/zh-cn/library/aa275787%28v=sql.80%29.aspx
net use \\servername\IPC$
那是为SQL Server 2000写的,但是我想这方面并没有太大变化。
SQL连接的一种简单测试方法是创建一个空文本文件,文件扩展名为“ UDL”。您可以在记事本中创建它。它可以有任何名称。我使用“ TestSQL.UDL”
将其保存在Windows PC的桌面上,然后双击它。
将弹出“数据链接属性”对话框,您可以在其中输入SQL Server的IP地址以及SQL用户名和密码。
单击“测试连接”按钮以查看是否可以连接。
只要您Microsoft.SqlServer.Smo
在本地计算机上的GAC中拥有该程序集,就可以使用PowerShell轻松完成此操作:
[Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Smo') | Out-Null
$server = New-Object Microsoft.SqlServer.Management.Smo.Server("YourSqlServerName")
# do a simple operation to see if you can get data
Try {
$server.Version | Out-Null
Write-Host "SQL Server connection successful!!!"
}
Catch [System.Exception] {
Write-Host "Error connecting to SQL Server..."
}