1. 端口分配
SQL Server默认使用1433端口进行通信,如果遇到端口被占用的情况,或是需要使用多实例,就需要修改端口分配。
1.1 查看当前端口分配
使用以下SQL语句可以查看当前SQL Server实例的端口分配:
--查看当前实例端口
EXEC xp_readerrorlog 0, 1, N'Server is listening on'
GO
执行结果如下图所示:
可以看到SQL Server当前使用的端口是1433。
1.2 修改SQL Server端口分配
SQL Server端口分配可以通过SQL Server配置管理器进行修改。
打开SQL Server配置管理器,在SQL Server网络配置中找到需要修改的实例(如此处的MSSQLSERVER),然后右键选择属性。
在弹出的窗口中,选择TCP/IP协议,在常规选项卡中,找到IPALL段落下的TCP端口,修改为需要使用的端口。
点击应用,然后重启SQL Server服务。
执行以上操作后,还需要重新查看SQL Server当前的端口分配是否已经修改成功,可以使用第1.1小节介绍的SQL语句进行查看。
2. SQL Server端口开放
修改SQL Server端口分配后,还需要确保该端口在防火墙中开放,否则无法从外部访问SQL Server。
2.1 查看当前端口开放情况
使用以下命令可以查看当前防火墙已经开放的端口:
netsh advfirewall firewall show rule name=all
执行结果如下所示:
从结果中可以看到当前防火墙只开放了3389端口。
2.2 开放SQL Server端口
使用以下命令来开放SQL Server使用的端口(如此处使用的是1434端口):
netsh advfirewall firewall add rule name="SQL Server" dir=in action=allow protocol=TCP localport=1434
执行成功后,再次使用命令查看当前开放的端口,可以看到多了一个SQL Server的规则:
这样就可以从外部访问SQL Server了。