马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
这篇内容面向需要在 Linux 服务器上部署 Microsoft SQL Server 的运维和 DBA 同学,尤其是用 CentOS 7 做企业内网数据库、报表库或测试环境的团队。我会把官方文档里容易漏掉的仓库配置、GPG 密钥、版本选择和 SA 密码策略这些坑,按我自己的实际操作顺序讲清楚,帮你少走弯路,也能作为 ToB 软件选型时评估 SQL Server on Linux 可行性的参考。
核心观点
在 CentOS 7 上装 SQL Server 2019,关键不是 yum install 那一步,而是仓库源和 GPG 密钥要先配好,否则安装会卡在依赖或签名校验上。装完之后必须用 mssql-conf setup 做初始化,服务才能正常启动。整个流程对熟悉 Linux 的运维来说半小时内能跑通,但版本和密码策略一旦选错,后面改起来比较麻烦。
装之前先把仓库和密钥搞定
很多人一上来直接 yum install mssql-server,结果报找不到包,就是因为系统里没有微软的仓库。先把系统更新到最新,再添加仓库文件。
更新系统(这一步不是可选项,CentOS 7 的旧包有时会和 mssql-server 的依赖冲突):
sudo yum update -y
添加 SQL Server 2019 和 Microsoft 产品仓库。注意路径里的 rhel/7 对应的是 RHEL 7 系,CentOS 7 通用:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo
sudo curl -o /etc/yum.repos.d/microsoft-prod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
手动导入微软的 GPG 密钥,避免安装时签名校验失败:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
顺带说一句,如果你公司有内网镜像或代理,curl 这一步可能拉不到外网,需要提前配好 yum 代理,否则会一直超时。这是我在客户内网环境里踩过的坑。
适用场景:什么情况下值得在 Linux 上跑 SQL Server
- 已有 Linux 运维体系:团队不想为了一套数据库再维护 Windows Server 授权和补丁,SQL Server on Linux 能复用现有运维流程。
- 成本敏感的项目:相比 Windows 版,Linux 版省掉了 Windows Server 授权这块开销,适合预算有限的内部系统。
- 混合环境:应用跑在 Linux 容器里,数据库也想放到同一套编排体系下,减少跨平台调用。
- 不建议的场景:依赖 Windows 特有的 SSIS、SSRS、复制代理等组件的项目,Linux 版支持有限,选型时要提前确认功能清单。
安装与初始化步骤
仓库配好之后,安装本身很快:
sudo yum install -y mssql-server
接着做初始化配置,这一步会交互式问你选版本(Developer / Express / Standard / Enterprise)、接受 EULA、设置 SA 密码:
sudo /opt/mssql/bin/mssql-conf setup
选版本时注意,Developer 版功能全但仅限开发和测试,生产环境用要看清授权条款;Express 免费但有 10GB 单库上限。SA 密码有复杂度要求(大小写字母、数字、符号至少各一类,长度够),设太简单会直接拒绝。
启动并设置开机自启:
sudo systemctl start mssql-server
sudo systemctl enable mssql-server
确认服务状态:
systemctl status mssql-server
看到 active (running) 才算真正起来。如果状态是 failed,八成是 SA 密码没通过策略或者内存不足——SQL Server 对内存有最低要求,小内存 VPS 上容易起不来,这点在选服务器规格时要留意。
关于 mssql-tools(sqlcmd 和 bcp)
原文提到要装 mssql-tools,也就是 sqlcmd 和 bcp 这两个命令行工具。它们不在 mssql-server 包里,需要单独从 prod 仓库装(前面已经配好了 microsoft-prod.repo)。装好之后你才能用命令行连数据库、跑脚本、做批量导入导出。对自动化运维和 CI 流程来说,这两个工具是刚需。
关键信息
- 目标系统:CentOS 7(RHEL 7 系),安装的是 SQL Server 2019 仓库版本。
- 必配两个仓库:
mssql-server-2019.repo 和 prod.repo,缺一不可。
- 初始化命令是
/opt/mssql/bin/mssql-conf setup,负责选版本、接受 EULA、设 SA 密码。
- 服务管理用 systemd:
systemctl start/enable/status mssql-server。
- mssql-tools 提供 sqlcmd 和 bcp,需从 prod 仓库单独安装。
选型与风险提示
把 SQL Server 放到 Linux 上,选型阶段有几件事值得提前确认:一是功能边界,Linux 版和 Windows 版不是完全等价,跨平台复制、部分高可用特性支持情况不同;二是运维习惯,团队里如果没人熟 Linux,出问题时排查成本会更高;三是备份和监控 方案,原有的 Windows 工具链不一定能直接用。这些不是安装层面的问题,但直接决定项目能不能长期跑下去。
qidao123.com企服评测-应用市场 编辑提示
本文的安装步骤针对 CentOS 7 + SQL Server 2019,其他发行版或版本仓库路径会不同,请对照微软官方文档确认。选型时别只看能不能装上,更要评估功能支持和长期运维成本。 |