SQL Server 设置端口详解

前言

在数据库管理和开发过程中,SQL Server是一个广泛使用的关系型数据库管理系统。默认情况下,SQL Server使用1433端口进行通信。然而,出于安全性、端口冲突或网络限制等原因,我们有时需要更改SQL Server的默认端口。本文将详细介绍如何在SQL Server中设置和更改端口。

一、为什么要更改SQL Server 的默认端口?

1. 安全性

默认端口1433是众所周知的,这使得你的SQL Server实例容易成为攻击目标。更改端口可以增加安全性,降低被攻击的风险。通过使用非标准端口,可以有效减少自动化攻击脚本对服务器的扫描和攻击。

2. 端口冲突

在同一台服务器上运行多个SQL Server实例时,可能会遇到端口冲突的问题。为每个实例设置不同的端口可以避免这种情况。例如,你可能在同一台服务器上运行多个开发、测试和生产环境的SQL Server实例,它们需要不同的端口来避免互相干扰。

3. 网络限制

在某些网络配置中,默认端口可能被防火墙或网络策略阻止,更改端口可以绕过这些限制,使SQL Server能够正常工作。例如,在某些组织的网络策略中,可能会限制使用默认端口,而允许使用特定范围内的端口。

二、前提条件

在进行以下步骤之前,请确保你具有以下条件:

  • 管理员权限:你需要具有操作系统和SQL Server实例的管理员权限。
  • SQL Server Configuration Manager 已安装:这是SQL Server安装时自带的工具。
  • 知晓当前SQL Server实例的名称:例如,默认实例名为 MSSQLSERVER,命名实例可能为 SQLExpress 等。

三、具体步骤

1. 打开 SQL Server Configuration Manager

SQL Server Configuration Manager是配置SQL Server网络协议的重要工具。具体步骤如下:

  1. 按下 Win + R 键,输入 SQLServerManager15.msc(对于SQL Server 2019)或 SQLServerManager14.msc(对于SQL Server 2017),然后按下回车键。
  2. 在弹出的SQL Server Configuration Manager窗口中,展开 SQL Server Network Configuration,然后选择 Protocols for <你的实例名>
背景知识:

SQL Server Configuration Manager是一个用于配置SQL Server网络协议和服务的工具。它提供了一个图形化界面,方便管理员配置SQL Server的网络设置、协议和服务。

2. 配置 TCP/IP 协议

Protocols for <你的实例名> 中,可以看到多种网络协议配置。我们需要重点关注 TCP/IP 协议。

  1. Protocols for <你的实例名> 中,右键点击 TCP/IP,然后选择 Properties
  2. TCP/IP Properties 窗口中,选择 IP Addresses 选项卡。
  3. 向下滚动到 IPAll 部分,你会看到 TCP PortTCP Dynamic Ports 两个设置。
    • TCP Dynamic Ports:将其值清空。这表示不使用动态端口。
    • TCP Port:输入你想要设置的新端口号,例如 1435
详细步骤说明:
  • IP1、IP2…:这些部分分别对应不同的网络适配器配置,你可以为每一个网络适配器单独配置端口,但通常情况下,我们会统一配置 IPAll 部分。
  • TCP Dynamic Ports:默认情况下,该字段可能包含一个值(例如 0),表示使用动态分配的端口。我们需要将其清空以禁用动态端口。
  • TCP Port:在此字段中输入你想要使用的固定端口,例如 1435
背景知识:

TCP/IP协议是SQL Server与客户端之间进行通信的主要协议。配置TCP/IP协议的端口号可以确保SQL Server通过特定端口进行监听和通信。

3. 重启 SQL Server 服务

更改端口设置后,需要重启SQL Server服务以使更改生效。

  1. 返回到SQL Server Configuration Manager的主界面。
  2. 展开 SQL Server Services,找到你的SQL Server实例(例如 SQL Server (MSSQLSERVER))。
  3. 右键点击实例名,然后选择 Restart 以重启服务,使设置生效。
注意事项:
  • 重启服务过程中,所有连接到该实例的客户端都会断开连接,因此请确保在一个适当的时间窗口内进行此操作,避免影响正常业务运行。
背景知识:

每次更改SQL Server的网络配置后,都需要重启服务以使新的配置生效。重启服务会中断当前的所有连接,因此需要谨慎操作。

4. 配置防火墙

为了确保新的端口能够正常工作,你需要在防火墙中打开该端口。

  1. 打开控制面板,选择 System and Security,然后选择 Windows Defender Firewall
  2. 点击 Advanced settings,打开 Windows Defender Firewall with Advanced Security
  3. 在左侧选择 Inbound Rules,然后在右侧选择 New Rule...
  4. 选择 Port,然后点击 Next
  5. 选择 TCP,并在 Specific local ports 中输入你之前设置的新端口号(例如 1435),然后点击 Next
  6. 选择 Allow the connection,然后点击 Next
  7. 确保所有配置文件(Domain, Private, Public)都被选中,然后点击 Next
  8. 为这条规则命名,例如 SQL Server Custom Port 1435,然后点击 Finish
详细步骤说明:
  • Inbound Rules:入站规则决定哪些入站流量可以访问服务器。创建新的规则可以允许特定端口的流量。
  • Port:选择端口规则类型,允许我们指定特定端口号。
  • Specific local ports:输入你之前配置的端口(例如 1435)。
  • Allow the connection:确保无论何种网络配置,都允许该端口的连接。
  • Profiles:选择所有配置文件(Domain、Private、Public),以确保无论在哪种网络环境下都能正常工作。
背景知识:

防火墙是服务器安全的重要组成部分。配置防火墙规则以允许SQL Server新端口的流量,确保客户端能够正常连接到SQL Server实例。

5. 更新客户端连接字符串

最后,你需要确保客户端应用程序的连接字符串使用新的端口号。例如,连接字符串可以这样配置:

Server=<服务器地址>,1435;Database=<数据库名>;User Id=<用户名>;Password=<密码>;
详细步骤说明:
  • Server:指定服务器地址和端口号。例如 localhost,1435192.168.1.100,1435
  • Database:指定要连接的数据库名称。
  • User IdPassword:提供相应的数据库用户凭据。
背景知识:

连接字符串是客户端应用程序与SQL Server通信的关键配置。指定正确的服务器地址和端口号,确保客户端能够成功连接到SQL Server。

6. 验证新端口

你可以使用SQL Server Management Studio (SSMS) 或其他SQL客户端工具来验证新的端口是否生效。

  1. 打开SSMS,选择 Connect > Database Engine
  2. Server name 中输入 <服务器地址>,1435,例如 localhost,1435
  3. 输入相应的登录凭据,然后点击 Connect

如果成功连接,说明端口配置成功。

背景知识:

SQL Server Management Studio (SSMS) 是微软提供的用于管理SQL Server实例的图形化工具。通过SSMS,可以方便地测试和验证SQL Server的连接配置。

四、常见问题

1. 无法连接到新的端口

  • 检查防火墙配置:确保防火墙已正确配置,允许新的端口通过。
  • SQL Server服务状态:确保SQL Server服务已成功重启且正在运行。
  • 网络配置:检查客户端和服务器之间的网络连接是否正常。
详细说明:
  • 防火墙配置:防火墙可能会阻止新的端口,检查防火墙规则是否正确配置,允许特定端口的流量。
  • 服务状态:使用SQL Server Configuration Manager检查SQL Server服务是否正在运行,确保服务已成功重启。
  • 网络配置:确保客户端和服务器在同一网络中,或者通过VPN等方式连接,确保网络连接正常。

2. 端口仍然被占用

  • 端口冲突:确保新的端口没有被其他应用程序占用,可以使用 netstat -aon | findstr :<端口号> 命令检查端口占用情况。
  • 多实例配置:如果在同一台服务器上运行多个SQL Server实例,请确保每个实例使用不同的端口。
详细说明:
  • 端口冲突:使用命令行工具检查特定端口是否被其他应用程序占用,如果被占用,考虑更改为其他未使用的端口。
  • 多实例配置:在同一台服务器上运行多个SQL Server实例时,确保每个实例配置不同的端口,避免端口冲突。

结论

更改SQL Server的端口虽然看似复杂,但只要按照上述步骤仔细操作,便能轻松实现。通过更改默认端口,不仅可以提升系统的安全性,还能解决端口冲突等问题。希望本文对你有所帮助,如果有任何问题,欢迎在评论区留言讨论。


作者: FLK_9090
CSDN博客: https://blog.csdn.net/FLK_9090
Gitee: https://gitee.com/fantasy_5
日期: 2024年7月7日


如果你觉得本文对你有帮助,请点赞、收藏并关注我,更多精彩内容等你来发现!


希望这篇更详细的文章能够满足您的需求。如果还有其他要求或需要进一步的补充,请随时告诉我。

相关推荐

  1. sqlserver设置端口

    2024-07-11 01:34:02       20 阅读
  2. SQLServer设置端口

    2024-07-11 01:34:02       20 阅读
  3. SQL Server 设置端口详解

    2024-07-11 01:34:02       20 阅读
  4. 如何在SQLServer中更改端口

    2024-07-11 01:34:02       22 阅读
  5. linux防火墙设置端口对外开放

    2024-07-11 01:34:02       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 01:34:02       53 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 01:34:02       55 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 01:34:02       46 阅读
  4. Python语言-面向对象

    2024-07-11 01:34:02       56 阅读

热门阅读

  1. MyBatis 框架核心及面试知识要点

    2024-07-11 01:34:02       23 阅读
  2. NLP - 基于bert预训练模型的文本多分类示例

    2024-07-11 01:34:02       17 阅读
  3. 二刷算法训练营Day57 | 动态规划(17/17)

    2024-07-11 01:34:02       18 阅读
  4. 自定义业务非受检异常

    2024-07-11 01:34:02       23 阅读
  5. GPT-5 一年半后发布?对此你有何期待?

    2024-07-11 01:34:02       20 阅读
  6. DSC主备归档报错

    2024-07-11 01:34:02       18 阅读
  7. DangerWind-RPC-framework---三、服务端下机

    2024-07-11 01:34:02       18 阅读
  8. spring管理bean源码解析

    2024-07-11 01:34:02       17 阅读
  9. a+=1和a=a+1的区别

    2024-07-11 01:34:02       17 阅读