我正在尝试连接到远程服务器上的 SQL Server Express 数据库实例。我已采取以下步骤来实现此目的:
- 启用 Windows 和 Sql 身份验证
- 允许远程连接
- 已启用 TCP/IP
- 启用命名管道(\.\pipe\MSSQL$SQLEXPRESS\sql\query)
对于Windows防火墙,我尝试了以下操作:
- 将 [path]\Binn\sqlservr.exe 添加到例外情况
- 将端口 1433 添加到例外
- 检查 SQL Server 日志中正在监听的端口 (1114),并将其添加到例外中
然后我尝试使用以下服务器名称通过 Sql Server Management Studio 进行连接:
- \[ip 地址]\pipe\MSSQL$SQLEXPRESS\sql\query
- [ip地址]\SQLEXPRESS
两者都失败并出现以下错误。我是不是漏掉了什么?
连接到服务器:与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接)(Microsoft SQL Server,错误:53)
(顺便说一下,我可以 ping 服务器...)
答案1
我认为,如果您不使用 SQL 服务浏览器(我认为您的机器上没有运行该浏览器),则应该指定使用的端口。
如解释的那样这里您有两个选择,使用 SQL 服务浏览器或明确指定端口。
答案2
尝试使用 TCP/IP 而不是命名管道进行连接。
您使用的实例名称是否正确?如果您将 SQL Server 安装为默认实例,则无需在服务器名称中添加 \SQLEXPRESS,只需使用 IP 即可。
答案3
我必须允许 SQL Server Management Studio Express 进入防火墙。我认为出站连接被阻止了。现在可以正常工作了!