【发布时间】:2014-11-30 12:05:13
【问题描述】:
一些见解,封闭的实验室环境,Windows Server 2012(主机)和内部虚拟交换机上的 2 个 VM 的 Windows 8.1(来宾)。主机设置为默认网关,ip 1,虚拟机对应 2 和 3。所有实体都可以在网络上看到对方,这意味着我可以通过文件共享 ping、tracert 或共享文件,而且我什至可以从每个实体调用命令到另一个地方。
问题是我在主机上安装了一个 SQL Server Express 实例 (SQLEXPRESS),但我无法使用以下代码在 Powershell 中从 vm 连接到它:
$sql_Server = "HOST\SQLEXPRESS"
$sql_User = "User"
$sql_Password = "Password"
$sql_Database = "Database"
$sql_Connection = New-Object System.Data.SqlClient.SqlConnection
$sql_Connection.ConnectionString = "Server=$sql_Server; Uid=$sql_User; Pwd=$sql_Password; Database=$sql_Database"
$sql_Connection.Open()
我得到的只是以下错误:
使用“0”参数调用“Open”的异常:“与网络相关的或 建立连接时发生特定于实例的错误 SQL 服务器。服务器未找到或无法访问。核实 实例名称正确且 SQL Server 配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)"
按照您的问题:
- 防火墙如果全部关闭,
- Tcp 端口 1433 已启用,
- 以上代码可在主机上运行
我对网络知之甚少,所以我猜我在这个谜题中遗漏了一些东西
【问题讨论】:
-
SQL Server Express 默认不允许远程连接 - 必须明确允许
-
这个帖子可能有帮助...stackoverflow.com/questions/11278114/…
-
@andyb 谢谢,这不是答案,但它让我明白了!我必须运行 sql 浏览器。
标签: sql-server powershell networking hyper-v