SQL Server在Ubuntu上的兼容性问题解决指南
SQL Server与Ubuntu的兼容性需严格匹配官方支持列表。SQL Server 2025 (17.x) 预览版仅支持Ubuntu 24.04;SQL Server 2022 (16.x) 支持Ubuntu 20.04/22.04;SQL Server 2019 (15.x) 支持Ubuntu 18.04/20.04;SQL Server 2017 (14.x) 支持Ubuntu 16.04/18.04。低于16.04的Ubuntu版本(如14.04)不再受支持,需升级系统版本以满足兼容性要求。
安装过程中常出现error while loading shared libraries错误(如缺少libldap-2.4-2、libssl1.1等库)。可通过以下命令手动安装缺失的依赖:
# 示例:安装常见缺失库(Ubuntu 20.04/22.04)
sudo apt-get install -y libldap-2.4-2 libssl1.1 ldap-utils
若依赖库版本冲突,可通过apt-cache policy <package-name>查看可用版本,选择兼容版本安装。
较新的Ubuntu版本(如22.04)默认使用OpenSSL 3.0+,可能与SQL Server要求的TLS 1.2不兼容。解决方法:
/etc/ssl/openssl.cnf,在[system_default_sect]部分添加MinProtocol = TLSv1.2,强制使用TLS 1.2。ubuntu:20.04),避免宿主机SSL版本冲突。/var/opt/mssql/mssql.conf配置文件的语法(如缩进、参数格式)。建议使用mssql-conf工具修改配置(如sudo /opt/mssql/bin/mssql-conf set network.tcpport 1433),避免手动编辑导致的格式错误。/var/opt/mssql)的属主为mssql用户(sudo chown -R mssql:mssql /var/opt/mssql)。若使用自定义数据目录,需提前创建并设置正确权限。SQL Server默认使用TCP 1433端口,需在防火墙中开放该端口:
sudo ufw allow 1433/tcp && sudo ufw reload。sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent && sudo firewall-cmd --reload。sudo systemctl start mssql-server启动SQL Server服务。sudo systemctl status mssql-server --no-pager检查服务运行状态(显示active (running)即为正常)。sudo systemctl enable mssql-server),如需关闭可使用sudo systemctl disable mssql-server。sqladmin)并赋予sysadmin角色,然后禁用SA账户。-- 使用sa登录后执行
CREATE LOGIN sqladmin WITH PASSWORD = 'StrongPassword123!';
ALTER SERVER ROLE sysadmin ADD MEMBER sqladmin;
ALTER LOGIN sa DISABLE;
ufw限制sudo ufw allow from <trusted-ip> to any port 1433)。