Mic*_*Sim 21 sql-server scripting
出于故障排除目的,我希望能够检查客户端是否可以连接到 SQL Server 实例,而与可能无法连接到 SQL Server 的应用程序无关。
有没有一种简单的方法(也就是说,不必安装第 3 方软件)使用默认的 Windows 系统工具来做到这一点?也许使用脚本或网络应用程序?
小智 30
SQL 连通性的一个简单测试方法是创建一个空文本文件,文件扩展名为“UDL”。您可以在记事本中创建它。它可以有任何名称。我使用“TestSQL.UDL”
将其保存在 Windows PC 的桌面上并双击它。
将弹出“数据链接属性”对话框,您可以在其中输入 SQL 服务器的 IP 地址以及 SQL 用户名和密码。
单击“测试连接”按钮以查看是否可以连接。
db2*_*db2 17
如果服务器正在使用 TCP/IP,那么简单的方法就是 telnet 到 SQL Server 端口并查看它是否连接。默认情况下,这是端口 1433,所以这应该可以工作:
telnet servername 1433
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,这可能是合适的。
如果它使用不同的端口或动态端口(与命名实例常见),那么您需要确定它当前正在侦听哪个端口。检查 SQL Server 配置管理器以查看它是特定端口还是动态端口。如果它使用动态端口,那么只要服务器上没有多个实例,这netstat -abn
可能是查找它正在使用的内容的最简单方法。否则,请在 Windows 事件日志或 SQL Server 错误日志中查找指示实例正在使用哪个端口的消息。
如果 SQL Server 使用命名管道,那么我相信如果您能够访问机器上的共享,则您有足够的网络连接。这篇文章说你可以进一步尝试连接到 IPC$ 共享:
http://msdn.microsoft.com/en-us/library/aa275787%28v=sql.80%29.aspx
net use \\servername\IPC$
Run Code Online (Sandbox Code Playgroud)
这是为 SQL Server 2000 编写的,但我认为这方面没有太大变化,如果有的话。
如果您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..."
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
135651 次 |
最近记录: |