温馨提示×

SQL Server在CentOS上的网络配置技巧

小樊
34
2025-10-26 07:52:46
栏目: 云计算

1. 安装SQL Server基础环境
在配置网络前,需确保SQL Server已正确安装在CentOS系统上。可通过Microsoft官方YUM源安装,步骤如下:

  • 添加Microsoft SQL Server YUM源:curl https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo -o /etc/yum.repos.d/mssql-server-2019.repo
  • 安装SQL Server核心组件:sudo yum install -y mssql-server
  • 运行配置向导设置SA密码及版本:sudo /opt/mssql/bin/mssql-conf setup
  • 启动服务并设置开机自启:sudo systemctl start mssql-server && sudo systemctl enable mssql-server

2. 配置SQL Server网络协议(核心步骤)
SQL Server的网络通信依赖TCP/IP协议,需通过配置文件启用并设置端口:

  • 编辑SQL Server主配置文件:sudo nano /var/opt/mssql/mssql.conf
  • 找到[network] section,修改或添加以下参数:
    [network] tcpip = true # 启用TCP/IP协议 port = 1433 # 设置监听端口(默认1433,可根据需求修改) 
  • 保存文件后重启服务使配置生效:sudo systemctl restart mssql-server

3. 调整防火墙规则放行流量
CentOS的防火墙(firewalld)默认会阻止外部访问SQL Server端口,需手动添加规则:

  • 开启TCP 1433端口(SQL Server数据库引擎):sudo firewall-cmd --permanent --zone=public --add-port=1433/tcp
  • 若启用SQL Server Browser服务(用于实例名称解析),还需开放UDP 1434端口:sudo firewall-cmd --permanent --zone=public --add-port=1434/udp
  • 重新加载防火墙配置:sudo firewall-cmd --reload

4. 可选:启用SQL Server Browser服务(实例名称解析)
若需通过实例名称(而非IP)连接SQL Server,需安装并启动Browser服务:

  • 安装Browser组件:sudo yum install -y mssql-server-browser
  • 启动服务并设置开机自启:sudo systemctl start mssql-server-browser && sudo systemctl enable mssql-server-browser
  • 确保防火墙允许UDP 1434端口(参考步骤3)。

5. 验证网络连接
使用SQL Server命令行工具sqlcmd测试本地/远程连接:

  • 本地连接(默认实例):sqlcmd -S localhost -U SA -P 'YourPassword'
  • 远程连接(指定IP和端口):sqlcmd -S your_server_ip,1433 -U SA -P 'YourPassword'
    若成功进入SQL命令行界面,说明网络配置生效。

6. 高级配置:修改TCP/IP属性(可选)
若需更细致的网络设置(如绑定特定IP、配置多个端口),可通过mssql.conf文件调整:

  • 绑定特定IP:在[tcpip] section添加listenaddress = your_ip(如listenaddress = 192.168.1.100
  • 添加多个端口:在[tcpip] section添加多行port参数(如port = 1433port = 1434
  • 保存后重启服务:sudo systemctl restart mssql-server

7. 排查常见连接问题
若连接失败,可通过以下步骤快速定位:

  • 检查SQL Server服务状态:sudo systemctl status mssql-server(确保服务运行)
  • 确认端口监听情况:sudo netstat -tuln | grep 1433(查看1433端口是否处于监听状态)
  • 查看SQL Server错误日志:/var/opt/mssql/log/errorlog(获取详细错误信息,如端口冲突、权限问题)。

0