在 Linux 平台上部署 Microsoft SQL Server 曾是天方夜谭,但随着微软拥抱开源,这一愿景已成为现实,CentOS 7 作为企业级应用中广泛使用的 Linux 发行版,为 SQL Server 提供了稳定可靠的运行环境,本文将详细介绍如何在 CentOS 7 系统上一步步安装和配置 SQL Server,帮助您快速搭建起强大的数据库服务。

安装前的准备工作
在开始安装之前,确保您的系统满足以下基本要求,这是保证安装过程顺利和后续服务稳定运行的基础。
- 系统要求:需要一个干净安装的 CentOS 7(64位)系统。
- 硬件配置:根据微软官方建议,至少需要 2GB 的 RAM、6GB 的可用磁盘空间以及 1.8 GHz 或更快的 CPU,对于生产环境,强烈建议配置更高的资源。
- 用户权限:您需要拥有
root权限或具有sudo权限的普通账户,以便执行系统级命令和安装软件包。 - 网络连接:确保服务器可以访问互联网,以便从微软的官方仓库下载所需的软件包。
安装 SQL Server 引擎
准备工作就绪后,我们就可以开始核心的安装步骤了,整个过程主要分为配置软件仓库、安装软件包、初始化配置和设置防火墙。
配置微软 SQL Server 仓库
我们需要将微软的官方软件仓库添加到 CentOS 7 系统中,这样,yum 包管理器才能找到并下载 SQL Server 的安装包。
执行以下命令来下载并安装仓库配置文件:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo
此命令会从微软的官方地址获取适用于 RHEL 7(与 CentOS 7 兼容)的 SQL Server 2019 仓库配置文件,并将其保存到系统的仓库目录中。
安装 SQL Server
仓库配置完成后,使用 yum 命令安装 mssql-server 包。-y 参数会自动回答所有提示为“是”,简化安装过程。
sudo yum install -y mssql-server
系统会自动解析依赖关系并从我们刚刚配置的仓库中下载安装 SQL Server 引擎,这个过程可能需要几分钟时间,具体取决于您的网络速度。
运行配置脚本
安装完成后,SQL Server 服务尚未启动,我们需要运行其自带的配置脚本来完成初始化设置,包括设置 SA 账户密码、选择版本以及启动服务。
sudo /opt/mssql/bin/mssql-conf setup
执行此命令后,系统会进入一个交互式的配置向导:
选择版本:系统会列出多个可供选择的版本,请根据您的需求选择一个,输入对应数字后按回车。
1– Evaluation (免费,180天试用)2– Developer (免费,功能完整,适用于开发和测试)3– Express (免费,轻量级,适用于小型应用)4– Web (付费版)5– Standard (付费版)6– Enterprise (付费版)7– 我有产品密钥 (输入零售版许可证密钥)
对于大多数开发和学习场景,选择
2(Developer) 是最佳选择。接受许可条款:输入
Yes并按回车,以接受软件的许可条款。
设置 SA 密码:输入一个强密码作为系统管理员(SA)账户的密码,密码要求至少包含 8 个字符,并包含大写字母、小写字母、数字和符号的组合,输入时密码不会显示在屏幕上,输入完成后按回车,并再次输入以确认。
配置脚本会根据您的选择完成剩余的设置,并自动启动 SQL Server 服务。
验证安装与配置防火墙
安装和配置完成后,我们应该验证服务是否正在运行,并开放防火墙端口以允许远程连接。
检查 mssql-server 服务的状态:
systemctl status mssql-server
如果看到 active (running) 的绿色字样,说明服务已成功启动,可以设置服务开机自启:
sudo systemctl enable mssql-server
配置防火墙,SQL Server 默认使用 TCP 端口 1433,我们需要在 firewalld 中永久开放此端口。
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent sudo firewall-cmd --reload
第一条命令添加了防火墙规则,第二条命令使其立即生效。
安装 SQL Server 命令行工具
服务器端已经安装完毕,但为了在本地或远程管理数据库,我们需要安装客户端命令行工具,主要是 sqlcmd 和 bcp。
配置客户端工具仓库
与服务器仓库类似,我们需要为客户端工具配置一个独立的仓库。
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
安装工具包
如果您的系统之前安装过旧版本的 unixODBC,建议先卸载以避免潜在的冲突。
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
执行安装命令:
sudo yum install -y mssql-tools
配置环境变量
为了方便在任何目录下直接使用 sqlcmd 和 bcp,建议将其安装路径添加到系统的 PATH 环境变量中。

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile source ~/.bash_profile
连接并验证
所有组件都已安装就绪,我们可以使用 sqlcmd 工具本地连接到 SQL Server 实例进行验证。
sqlcmd -S localhost -U SA -P '<YourStrongPassword>'
请将 <YourStrongPassword> 替换为您在配置步骤中设置的 SA 密码。
连接成功后,会出现 1> 提示符,您可以输入一些简单的 T-SQL 命令进行测试,例如查看 SQL Server 的版本信息:
SELECT @@VERSION; GO
输入 GO 并回车后,系统会执行上一条命令并返回结果,要退出 sqlcmd,输入 QUIT 即可。
至此,您已成功在 CentOS 7 上安装并配置了 Microsoft SQL Server,并验证了其基本功能,您就可以开始创建数据库、设计表结构以及进行数据操作了。
相关问答 (FAQs)
问题 1:我忘记了 SA 账户的密码,应该如何重置?
解答:重置 SA 密码需要以单用户模式启动 SQL Server,请按照以下步骤操作:
- 停止 SQL Server 服务:
sudo systemctl stop mssql-server - 以单用户模式启动服务,并允许
sqlcmd连接:
sudo systemctl start mssql-server -m"single" - 使用
sqlcmd连接(此时不需要密码):
sudo sqlcmd - 在
1>提示符下,使用ALTER LOGIN命令重置密码:ALTER LOGIN SA WITH PASSWORD = '<YourNewStrongPassword>'; GO
- 退出
sqlcmd并重启 SQL Server 服务,使其恢复正常模式:
sudo systemctl restart mssql-server
之后您就可以使用新密码通过 SA 账户登录了。
问题 2:我无法从另一台计算机远程连接到 CentOS 7 上的 SQL Server,是什么原因?
解答:远程连接失败通常涉及以下几个层面的问题,请逐一排查:
- 防火墙:确认 CentOS 7 上的防火墙(
firewalld)已经开放了 1433 端口,检查网络中是否存在其他硬件防火墙或安全组策略阻止了该端口的访问。 - 服务状态:在 CentOS 7 服务器上,使用
systemctl status mssql-server确保 SQL Server 服务正在运行。 - 网络连通性:从客户端机器使用
ping命令测试到服务器的网络是否通畅,并使用telnet <服务器IP> 1433命令测试端口是否可达。 - SQL Server 协议:虽然新版本默认启用 TCP/IP,但可以检查
sqlcmd -S localhost -U SA -P '<password>'在本地是否能成功连接,以排除 SQL Server 自身的协议问题。 - SELinux:如果系统开启了 SELinux(Enforcing 模式),它可能会阻止网络连接,可以尝试临时设置为 Permissive 模式(
sudo setenforce 0)进行测试,如果问题解决,则需要配置正确的 SELinux 策略。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复