努力
加油

云服务器Ubuntu系统如何安装配置SQL Server?

在云服务器上部署 Microsoft SQL Server(MSSQL)对于 Ubuntu 系统来说,是一个经典且实用的场景。虽然 MSSQL 传统上绑定 Windows 生态,但自 SQL Server 2017 起,微软正式推出了对 Linux 的原生支持,目前最新的 SQL Server 2022 也完美兼容主流 Linux 发行版,包括 Ubuntu。

以下是在阿里云、腾讯云等国内主流云厂商的 Ubuntu 云服务器(建议版本:Ubuntu 20.04 LTS 或 22.04 LTS)上安装和配置 SQL Server 的完整指南。


⚠️ 前置准备与注意事项

  1. 系统资源要求:
    • SQL Server 是内存密集型应用。官方最低要求为 2GB RAM,但生产环境强烈建议 4GB 或以上。
    • 如果使用的是低配云服务器(如 1核2G),务必确保系统有足够的 Swap 分区,否则启动时可能因 OOM(内存溢出)失败。
  2. 网络与安全组:
    • SQL Server 默认监听 TCP 1433 端口。
    • 重要:请在云厂商控制台的安全组/防火墙规则中,仅允许特定 IP 访问 1433 端口,切勿对 0.0.0.0/0 开放,以防被勒索软件扫描攻击。
  3. 许可证:
    • 开发者和测试用途可使用免费版的 Developer Edition。
    • 生产环境需购买 Standard 或 Enterprise 许可证,或通过订阅制云服务获取授权。

📦 第一步:导入 Microsoft GPG 密钥和软件源

Ubuntu 官方仓库不包含 SQL Server,因此需要从微软官方源安装。以 Ubuntu 20.04 为例(其他版本类似):

# 1. 下载并导入 Microsoft GPG 公钥
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg

# 2. 添加 SQL Server 2022 的软件源(根据你的需求选择版本)
# 这里以 SQL Server 2022 为例
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/ubuntu/20.04/mssql-server-2022 prod main" | sudo tee /etc/apt/sources.list.d/mssql-server.list

# 3. 更新包索引
sudo apt update

💡 提示:如果你需要 SQL Server 2019,请将 URL 中的 mssql-server-2022 改为 mssql-server-2019,并确保源路径匹配你的 Ubuntu 版本。


🛠️ 第二步:安装 SQL Server

sudo apt install -y mssql-server

安装过程中会自动处理依赖关系。完成后,运行配置脚本:

sudo /opt/mssql/bin/mssql-conf setup

🔑 配置向导关键步骤:

  1. 选择版本:
    • 输入对应版本的编号(如 1 表示 Developer Edition,免费用于开发和测试)。
    • 生产环境请选择付费版本并输入有效许可证密钥。
  2. 设置 SA 密码:
    • 必须满足复杂性要求:至少 8 个字符,包含大写、小写、数字和符号。
    • ⚠️ 安全警告:SA 是超级管理员账户,请妥善保管密码,不要硬编码在代码中。
  3. 确认配置:
    • 按 Y 确认并接受许可条款。

✅ 第三步:验证安装状态

systemctl status mssql-server --no-pager

你应该看到服务状态为 active (running)。如果没有运行,尝试重启:

sudo systemctl restart mssql-server

🌐 第四步:配置防火墙与远程连接

1. 本地防火墙(UFW)

如果你的服务器启用了 UFW 防火墙,需放行 1433 端口:

sudo ufw allow 1433/tcp
sudo ufw reload

2. 云厂商安全组

登录你的云控制台(如阿里云 ECS、腾讯云 CVM),找到实例的安全组规则:

  • 入方向规则:
    • 协议:TCP
    • 端口:1433
    • 授权对象:强烈建议指定你的固定 IP 地址,而非 0.0.0.0/0。
    • 描述:SQL Server Access

🧪 第五步:测试连接

方法一:使用 sqlcmd 命令行工具(推荐用于快速验证)

  1. 安装客户端工具:

    curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/ubuntu/20.04/prod main" | sudo tee /etc/apt/sources.list.d/msprod.list
    sudo apt update
    sudo apt install -y mssql-tools unixodbc-dev
  2. 添加 bin 目录到 PATH(临时生效):

    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
    source ~/.bashrc
  3. 测试连接:

    sqlcmd -S localhost -U SA -P '<YourStrong@Passw0rd>'

    将 <YourStrong@Passw0rd> 替换为你设置的 SA 密码。

    如果成功,你将进入 1> 提示符,输入 SELECT @@VERSION; 并按两次回车,即可看到 SQL Server 版本信息。

方法二:使用图形化工具(如 DBeaver、Azure Data Studio)

  1. 在你的本地电脑安装 Azure Data Studio(微软官方轻量级工具)或 DBeaver。
  2. 新建连接:
    • 主机:云服务器的公网 IP
    • 身份验证:SQL Server 身份验证
    • 用户名:SA
    • 密码:你设置的 SA 密码
  3. 点击“测试连接”,成功后保存。

🛡️ 第六步:安全加固最佳实践

  1. 禁用 SA 账户(可选):
    如果团队使用 Windows Authentication 或专用应用账户,可考虑禁用 SA 账户以降低风险。

    ALTER LOGIN SA DISABLE;
  2. 定期更新:
    sudo apt update && sudo apt upgrade mssql-server
  3. 备份策略:
    SQL Server 数据库文件位于 /var/opt/mssql/data/。建议使用 bak 文件进行逻辑备份,并结合云厂商的快照功能实现物理备份。
  4. 启用日志监控:
    查看错误日志排查问题:

    sudo cat /var/opt/mssql/log/errorlog

❓ 常见问题排查

问题 可能原因 解决方案
服务无法启动 内存不足 增加 Swap 或升级实例规格至 4GB+ RAM
连接超时 安全组未放行 检查云控制台安全组是否开放 1433 端口
认证失败 密码不符合复杂度 重新运行 mssql-conf setup 或使用强密码重置
sqlcmd: not found 未安装客户端或未配置 PATH 执行上述安装 mssql-tools 的步骤

💡 总结

在 Ubuntu 云服务器上部署 SQL Server 已经完全成熟,适合需要跨平台能力、追求成本优化或已有 Linux 运维体系的企业。关键在于:

  1. 资源充足(≥4GB RAM)。
  2. 网络安全(严格限制 1433 端口访问)。
  3. 规范操作(使用强密码、定期更新)。

如需更高可用架构,可结合云厂商提供的 SQL Server 高可用托管服务(如 Azure SQL、阿里云 RDS for SQL Server),它们能自动处理主从同步、故障转移和备份,降低运维复杂度。