外部服务连接本地SQL Server Express失败(错误26)求助
错误26(无法定位SQL Server实例)的排查要点
1. 处理SQL Server Express的端口与实例映射问题
- Express版本默认是命名实例,默认端口并非固定1433。你当前映射了1433,但可能SQL Server实际使用的是动态端口:
- 打开SQL Server配置管理器,找到SQL Server网络配置 > SQLEXPRESS的协议,右键TCP/IP选择属性,切换到「IP地址」标签:
- 拉至最下方的IPAll区域,查看「TCP动态端口」(若有数值则说明使用动态端口),确认「TCP端口」是否设置为1433;
- 如果是动态端口,要么将其改为固定1433(需重启SQL Server服务),要么在路由器映射时使用该动态端口号,同时在Skyvia连接时以
公网IP,端口号的形式指定端口。
- 打开SQL Server配置管理器,找到SQL Server网络配置 > SQLEXPRESS的协议,右键TCP/IP选择属性,切换到「IP地址」标签:
- 注意:命名实例的外部连接不能直接用
公网IP\SQLEXPRESS格式,因为SQL Browser服务未对外暴露时,无法解析实例名称,必须用公网IP,端口号指定端口。
2. 检查SQL Browser服务状态
- SQL Server Express作为命名实例,依赖SQL Browser服务对外暴露实例名称与端口:
- 打开服务管理器(运行
services.msc),找到SQL Server Browser服务,设置为自动启动并启动该服务; - 确保Windows防火墙允许SQL Browser服务的UDP 1434端口通过,外部连接需要此端口解析命名实例。
- 打开服务管理器(运行
3. 验证登录账号的远程权限
- 尽管本地SSMS可登录,仍需确认
SamLProgrammer账号具备远程连接权限:- 在本地SSMS中,登录后展开安全性 > 登录名,右键
SamLProgrammer选择属性,切换到「状态」标签,确认「允许连接到数据库引擎」已勾选; - 同时确认该账号在「用户映射」中已关联
myDatabase数据库,具备访问权限。
- 在本地SSMS中,登录后展开安全性 > 登录名,右键
4. 确认路由器映射与网络连通性
- 核实路由器映射的是本地机器的正确内网IP(通过
ipconfig查看本机IPv4地址),映射规则为公网端口(1433或你设置的固定端口)指向内网机器的对应端口; - 可在外部网络用
telnet 公网IP 端口测试连通性,先排除网络层面的阻塞问题。
5. 检查SQL Server的远程连接开关
- 打开SSMS,右键服务器实例选择属性,切换到「连接」标签,确认允许远程连接到此服务器已勾选。
内容的提问来源于stack exchange,提问作者Clown
相关产品推荐
相关产品推荐

