SQLServer—端⼝概念
sqlserver端⼝概念,之前⼀直以为sqlserver实例都是使⽤的同⼀个端⼝1433,或者是⼈⼯修改后的某个端⼝,近期部门开发的监控平台测试时发现其实不然
1.sql server configuration manager 配置管理器
SQL Server 配置管理器为 SQL Server 服务、服务器协议、客户端协议和客户端别名提供基本配置管理
可以在开始菜单栏中或C:\Windows\SysWOW64\SQLServerManager10.msc中打开
2.TCP\IP
安装默认实例使⽤的是1433端⼝,但是可以修改;如果继续安装命名实例,则默认使⽤动态TCP端⼝1024-65535之间,也可以设置为静态的TCP端⼝,⽅便防⽕墙开放,使⽤动态端⼝后会随机选择1024-65535之间⼀个数值作为本实例的端⼝号,端⼝选定之后重启sql服务不会变化,除⾮⼿动再次修改其端⼝号;设置静态端⼝时要防⽌本机上的端⼝冲突。
SQLServer使⽤SQL server browser服务来监听连接SQL server命名实例的⽹络要求,提供指定的命名实例侦听的TCP端⼝号(该服务端⼝号为udp1434,⽤于解析实例名,提供该实例名对应的tcp端⼝⽤于连接)
数据库实例名是什么意思
,如果有缓存以后就不需要再通过该服务解析;如果只安装了默认实例,则该服务安装后默认禁⽤,因为默认实例在访问时只需要提供ip,不需要提供实例名,也就不需要解析。如果是命令实例安装,则browser服务会设置为⾃动启动安装;所有实例只有⼀个browser服务,不管⼀台服务器上安装了多少个SQL实例,始终都只会有⼀个browser服务。
3.数据库连接
我们平时web连接sqlserver数据库⼀般都是⽤'ip\实例名'这种格式来连接,如果安装的是默认实例的话,就是直接⽤ip来访问就可以。下⾯提供sqlserver另⼀种通过端⼝来访问的格式,即'ip,端⼝号',ip与端⼝号之间需要逗号分隔。
例⼦:本机(192.168.149.18)安装了⼀个默认实例(下图显⽰默认使⽤的是tcp1433端⼝)及⼀个命令实例epoint(下图显⽰默认使⽤的是动态端⼝55186)
服务器访问:
192.168.149.18 ----> 直接访问ip不需要通过SQL server browser服务解析,默认访问1433端⼝,也就是默认实例
192.168.149.18,1433 ----> 直接访问监听1433端⼝的实例,不需要SQL server browser服务解析,同样
访问的是默认实例
192.168.149.18\epoint -----> 先要通过SQL server browser服务解析实例名epoint,提供epoint的端⼝号55186,然后去连接该端⼝号访问epoint实例192.168.149.18,55186 -----> 直接访问epoint实例
4.总结
通过了解sqlserver内部的端⼝概念,在排错的时候也提供的更多的思路
⽐如当web服务器⽆法访问sql时,我们可以查看是否开启TCP/IP协议,访问命令实例时,SQL server browser服务是否开启,实例对应监听端⼝是否可以telnet 等判断问题原因。