Ubuntu 上 SQL Server 兼容性问题解析
一 支持矩阵与系统要求
- 支持版本与操作系统
- SQL Server 2017:支持 Ubuntu 16.04 及更高版本
- SQL Server 2019:支持 Ubuntu 18.04 及更高版本
- SQL Server 2022:支持 Ubuntu 20.04 及更高版本
- 硬件与文件系统
- 处理器:x64
- 内存:至少 2 GB
- 文件系统:推荐 EXT4 或 XFS
- 磁盘空间:建议预留 ≥6 GB
- 版本选择建议:新部署优先选择 Ubuntu 20.04/22.04 LTS 搭配 SQL Server 2019/2022,可获得更长的支持周期与更少的兼容性问题。
二 常见兼容性问题与修复
- 共享库缺失(如:libssl、liblber)
- 现象:启动或客户端连接时报错,例如 “error while loading shared libraries: libssl.so: cannot open shared object file”。
- 处理:
- 使用发行版包管理器安装 OpenSSL 开发包(如 openssl-devel 或发行版等效包)。
- 或在 /var/opt/mssql/mssql.conf 中调整 TLS 配置以适配现有 OpenSSL:
- [network]
- tlsprotocols = 1.3,1.2
- tlsciphers = TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA
- 混合 CPU 架构导致实例无法启动(第 12 代 Intel 及以上)
- 现象:在 Linux 主机上启动失败,断言类似 “result * DrtlGetProcessorCoreCount() == DrtlGetProcessorCount()”。
- 处理:在 BIOS 禁用效率核心(E-cores);在 容器/WSL/Hyper-V 环境下不受影响。
- PolyBase 网络加密限制(SQL Server 2025 预览 RC0)
- 现象:启用 PolyBase 网络加密后失败。
- 处理:将 PolyBase 网络加密设置为 0:
- EXEC sp_configure @configname = ‘polybase network encryption’, @configvalue = 0;
- RECONFIGURE WITH OVERRIDE;
- 本地 ONNX 模型(SQL Server 2025 预览 RC0)
- 现象:在 Linux 上 CREATE EXTERNAL MODEL 使用本地 ONNX 模型不受支持。
- 处理:改用受支持平台或在 Windows 上执行相关模型托管。
三 安装与网络连通性要点
- 安装步骤(以 Ubuntu 20.04 + SQL Server 2022 为例)
- 导入 GPG 密钥:curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
- 添加软件源:sudo add-apt-repository “$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2022.list)”
- 安装与配置:sudo apt-get update && sudo apt-get install -y mssql-server && sudo /opt/mssql/bin/mssql-conf setup
- 安装命令行工具:sudo apt-get install -y mssql-tools unixodbc-dev
- 远程连接与防火墙
- 开放默认端口:sudo ufw allow 1433/tcp
- 验证服务状态:systemctl status mssql-server --no-pager
- 常见连接失败排查
- 查看错误日志:/var/log/sqlserver/MSSQLSERVER.log
- 检查系统资源(内存、磁盘、CPU)与端口连通性(如 nc/telnet 到 1433)。
四 功能支持差异与注意事项
- 引擎与特性:在 Linux 上提供与 Windows 相近的核心数据库能力,如 内存中 OLTP、列存储索引、透明数据加密(TDE)、访问控制与审计 等,适合大多数业务场景。
- 平台限制(与 Windows 的差异)
- SQL Server 2025(17.x)预览 RC0:Linux 上不支持本地 ONNX 模型;PolyBase 网络加密需设为 0。
- 混合架构 CPU(如 Intel 第 12 代+)的物理 Linux 主机存在启动断言问题,需禁用 E-cores 或改用容器/虚拟化环境。