默认实例会使用1433端口 命名实例每次启动绑定的端口号都不一样 SQL Browser启动后,启动并使用1434 UDP端口。读取注册表 识别计算机上的所有SQL实例,并标明它们使用的端口和命名管道 SQL Browser不运行时,如果你提供正确的端口号或命名管道,依然可以连接SQL 需要在防火墙或网关上打开UDP1434端口 SQL Browser的启动帐号要有读写注册表的权力,否则会导致客户端连接不上
命名管道通过进程IPC$共享实现,在TCP协议之上 不同进程之间,或在跨越一个网络的不同计算机的进程之间,进行单向或双向的数据通信 访问IPC$共享必须通过Windows 的认证,目的是利用Windows Server内置的安全机制
named pipe in log: Server named pipe provider is ready to accept connection on
tcp listen in log:
Server is listening on [ 'any'
别名:把非1433的监听转成标准的监听?
使用configuration manager管理
问题检查: readpipe.exe makepipe.exe
步骤1:使用服务器端网络实用工具检查命名管道配置并确认SQL Server已经监听了命名管道协议。
步骤2:使用客户端网络实用工具检查客户端的连接协议配置,确保启用了命名管道。当然,客户端连接的缺省管道名称需要和SQL服务器监听的一致。 另外,需要仔细查看是不是存在错误的SQL Server 别名。
步骤3:检查网络连通性。例如要确保不但能够ping通 SQL Server服务器的IP地址,也能够ping 通SQL Server服务器的名称。
步骤4:检查客户端是否能够通过SQL Server 服务器的Windows认证。可以使用如下命令进行:
net view \servername net use \servername\IPC$ 如果这两条命令出错,则表明有访问SQL Server服务器权限上的问题。需要扫除了这些问题之后再去解决命名管道连接的问题。
sqlcmd -S \servername\pipe\sql\query
步骤 5:确保客户端登录(login)帐号有权限访问SQL Server。 为了简化问题,排除Windows认证问题的干扰,如果SQL Server配置了SQL Authentication,建议使用一个SQL Server帐号测试登录。 等SQL Server帐号能连通以后,再使用Windows帐号测试。
如果指定端口能连上,不指定时报:SQL Server doesn't exist or access denied: UDP 1434在网络上被禁用了
SQL browser 服务账户最低权限: 作为服务登录 读取和写入与网络通信(端口和管道)相关的 SQL Server 注册表项
动态配置端口当重新启动后,SQL Server 将设法侦听之前使用的端口