如何在CentOS 7上安装SQL Server数据库?

在 Linux 平台上部署 Microsoft SQL Server 曾是天方夜谭,但随着微软拥抱开源,这一愿景已成为现实,CentOS 7 作为企业级应用中广泛使用的 Linux 发行版,为 SQL Server 提供了稳定可靠的运行环境,本文将详细介绍如何在 CentOS 7 系统上一步步安装和配置 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. 选择版本:系统会列出多个可供选择的版本,请根据您的需求选择一个,输入对应数字后按回车。

    • 1 – Evaluation (免费,180天试用)
    • 2 – Developer (免费,功能完整,适用于开发和测试)
    • 3 – Express (免费,轻量级,适用于小型应用)
    • 4 – Web (付费版)
    • 5 – Standard (付费版)
    • 6 – Enterprise (付费版)
    • 7 – 我有产品密钥 (输入零售版许可证密钥)

    对于大多数开发和学习场景,选择 2 (Developer) 是最佳选择。

  2. 接受许可条款:输入 Yes 并按回车,以接受软件的许可条款。

    如何在CentOS 7上安装SQL Server数据库?

  3. 设置 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 命令行工具

服务器端已经安装完毕,但为了在本地或远程管理数据库,我们需要安装客户端命令行工具,主要是 sqlcmdbcp

配置客户端工具仓库

与服务器仓库类似,我们需要为客户端工具配置一个独立的仓库。

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

配置环境变量

为了方便在任何目录下直接使用 sqlcmdbcp,建议将其安装路径添加到系统的 PATH 环境变量中。

如何在CentOS 7上安装SQL Server数据库?

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,请按照以下步骤操作:

  1. 停止 SQL Server 服务:
    sudo systemctl stop mssql-server
  2. 以单用户模式启动服务,并允许 sqlcmd 连接:
    sudo systemctl start mssql-server -m"single"
  3. 使用 sqlcmd 连接(此时不需要密码):
    sudo sqlcmd
  4. 1> 提示符下,使用 ALTER LOGIN 命令重置密码:
    ALTER LOGIN SA WITH PASSWORD = '<YourNewStrongPassword>';
    GO
  5. 退出 sqlcmd 并重启 SQL Server 服务,使其恢复正常模式:
    sudo systemctl restart mssql-server
    之后您就可以使用新密码通过 SA 账户登录了。

问题 2:我无法从另一台计算机远程连接到 CentOS 7 上的 SQL Server,是什么原因?

解答:远程连接失败通常涉及以下几个层面的问题,请逐一排查:

  1. 防火墙:确认 CentOS 7 上的防火墙(firewalld)已经开放了 1433 端口,检查网络中是否存在其他硬件防火墙或安全组策略阻止了该端口的访问。
  2. 服务状态:在 CentOS 7 服务器上,使用 systemctl status mssql-server 确保 SQL Server 服务正在运行。
  3. 网络连通性:从客户端机器使用 ping 命令测试到服务器的网络是否通畅,并使用 telnet <服务器IP> 1433 命令测试端口是否可达。
  4. SQL Server 协议:虽然新版本默认启用 TCP/IP,但可以检查 sqlcmd -S localhost -U SA -P '<password>' 在本地是否能成功连接,以排除 SQL Server 自身的协议问题。
  5. SELinux:如果系统开启了 SELinux(Enforcing 模式),它可能会阻止网络连接,可以尝试临时设置为 Permissive 模式(sudo setenforce 0)进行测试,如果问题解决,则需要配置正确的 SELinux 策略。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-25 18:37
下一篇 2025-09-29 06:07

相关推荐

  • 忘记CentOS 6.3的root密码该如何进行破解操作?

    在系统管理员的日常工作中,忘记服务器的root密码是一个虽不常见但一旦发生便会带来极大困扰的问题,对于运行着关键业务服务的CentOS 6.3系统而言,无法获取root权限意味着无法进行维护、更新或故障排查,幸运的是,Linux系统提供了多种合法且安全的途径来恢复或重置密码,本文将详细介绍在CentOS 6.3……

    2025-10-04
    002
  • 服装网站案例_二维异形件服装切割

    服装网站案例展示了二维异形件服装切割技术,精准裁剪不规则形状,提升设计自由度和生产效率,满足个性化需求。

    2024-07-08
    0021
  • ftp服务器地址_FTP

    FTP服务器地址是指FTP(文件传输协议)服务器在网络中的位置,通常包括IP地址或域名以及端口号。ftp.example.com:21。请根据实际情况替换为正确的服务器地址和端口。

    2024-07-16
    005
  • CentOS下用什么方法模拟Windows系统最稳定好用?

    使用Wine兼容层Wine(Wine Is Not an Emulator)是一个在Linux、macOS等类Unix操作系统上运行Windows应用程序的兼容层,它并非一个模拟器或虚拟机,而是通过将Windows API调用动态翻译为POSIX调用,从而让Windows程序无需修改即可在Linux上原生运行……

    2025-10-25
    002

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信