从PS远程查询SQL Server失败,报SQL Network Interfaces错误26
排查SQL Server远程连接错误26的补充方案
你遇到的SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified错误,核心是客户端无法定位到目标SQL Server实例,结合你已做的排查,补充以下针对性检查:
1. 确认连接字符串的实例与端口配置
- 如果是默认实例:确保连接字符串使用
Server=服务器IP/主机名格式,不要额外加实例名;直接指定端口(如Server=服务器IP,1433)跳过SQL Browser解析,测试是否能连接 - 如果是命名实例:
- 用
Test-NetConnection 服务器IP -Port 1434 -InformationLevel Detailed检查UDP 1434端口是否能连通(SQL Browser依赖该端口返回实例端口) - 若UDP 1434不通,要么排查网络设备是否拦截UDP流量,要么直接在连接字符串中指定实例的实际监听端口(可在SQL Server错误日志中查找
Server is listening on条目获取端口号)
- 用
2. 验证SQL Server的TCP/IP监听配置
打开SQL Server配置管理器:
- 确认SQL Server网络配置 -> 实例名的协议 -> TCP/IP已启用
- 进入TCP/IP的「IP地址」标签:
- 找到对应客户端访问的IP段(如IP1、IP2),设置「TCP端口」为固定值(默认1433),「已启用」设为「是」
- 确保「TCP动态端口」为空(避免实例随机切换端口)
- 重启SQL Server服务使配置生效
3. 检查PowerShell连接的身份验证与客户端配置
- 若使用Windows认证:在SQL Server所在机器运行
setspn -L 主机名,确认存在MSSQLSvc/主机名和MSSQLSvc/主机名:端口格式的SPN(Kerberos认证依赖正确的SPN注册) - 检查本地是否存在错误的SQL Server别名:打开「SQL Server配置管理器 -> SQL Server客户端配置 -> 别名」,删除无关或错误的别名配置
4. 网络与实例状态的深层检查
- 即使能ping通,用
Test-NetConnection 服务器IP -Port 监听端口(如1433)确认TCP端口是否真的能建立连接 - 在本地SQL Server执行
SELECT @@SERVERNAME,确认返回的实例名称与远程连接时使用的完全一致(主机名变更可能导致实例名不匹配) - 检查SQL Server错误日志,确认实例启动时没有监听失败的报错信息
内容的提问来源于stack exchange,提问作者Mlsracer
相关产品推荐
相关产品推荐

