mssql sqlserver建立数据库连接时,出现于网络相关的或特定于实例的错误的解决方法分享


摘要:
今天有同事在使用 “服务器名称\实例名称”的方式连接另外一台DB服务器时,出现错误信息
“在与SQL Server建立连接时出现于网络相关的或特定于实例的错误,未找到或无法访问服务器。请验证实例名称是否正确并且SQL Server已配置允许远程访问连接。(provider:SQL Network Interfaces,error:26-定位指定的服务器/实例时出错)”
下文将讲述此异常的具体解决方法,如下所示:


1.实现ip和端口号的方式,可以连接上实例,此时可以确定为 DB服务器运行正常,并且开启了远程连接
2.采用服务器名称\端口号,也可以连接上DB服务器,如果此时无法连接DB服务器,需要将“服务器名称”加入至host表中。
3.此时我们可以判断当我们把 “端口号”==>转换为”实例名”时,DB就无法连接,

那么此时我们需了解 实例名的访问方式:
当DB服务器收到”实例名模式”的访问时,
会通过自身的”SQL Server Browser服务”,获取实例名和端口之间的映射关系,然后把实例名转换为端口为用户提供服务。

SQL Server Browser服务启动后,
会同时启动并占用UDP 1434端口。
此时SQL Server Browser服务会读取注册表(所有HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.X\MSSQLServer\Super- SocketNetLib下的记录),
将计算机上的实例和端口一一对应。
————————————————

如果不能使用实例名访问远程数据库时,请检查一下sql server brower服务是否启动成功及服务器的端口是否设置成功。