提示「找不到实例(错误 55)」是什么?
连接命名实例时客户端报「找不到实例」类错误的成因:SQL Browser 没开、动态端口未通告、实例名写错,以及解决路径。
简短答案
「找不到实例」几乎都发生在命名实例 + 动态端口的组合上:客户端要向 SQL Browser 服务问「实例在哪个端口」,Browser 没开、被防火墙拦了 135/UDP 对应端口、或实例名写错,都会得到这个错。三条路:开 Browser、把实例改成固定端口、核对实例名。
现象对照
| 现象 | 原因 | 处理 |
|---|---|---|
| 本机 SSMS 能连、远程连不上命名实例 | Browser 服务没跑或被防火墙拦 | 启动 SQL Browser,放行 135/UDP |
| 固定了端口的实例仍报找不到 | 客户端用了「机器名\实例名」写法 | 连接串改「机器名,端口」 |
| 实例名写错(大小写/多余字符) | 名称解析不到实例 | 用 osql -L 或 SSMS 里查准确实例名 |
| 只有某客户端复现 | 客户端缺 TCP 提供程序 | 按「无相应网络提供程序」类错误处理 |
排查步骤
- 确认目标实例名:服务端
Get-Service | findstr MSSQL看服务名里MSSQL$实例名的确切写法。 - 查实例端口形态:「SQL Server 配置管理器」里该实例的 TCP 端口是固定还是动态。
- 动态端口远程访问:启动 SQL Browser 服务,并放行 UDP 135(及 SQL Browser 的对应端口);详见 SQL Server 2022 Developer、SQL Server 2019 Developer 条目页的说明。
- 更稳妥的做法:给命名实例设固定端口,客户端用
机器名,端口连接,不依赖 Browser。 - 本机先用 SSMS 验证实例本身可连,再排查远程链路。
默认实例(TCP 固定 1433)不经过 Browser 通告端口,所以这个问题基本只出现在命名实例上;把实例改固定端口是最省心的方案。
操作小结
- 「找不到实例」= 动态端口没被通告或名称写错。
- 二选一:开 SQL Browser + 放防火墙,或改固定端口。
- 本机先连通,再排远程链路。