
本文将指导您在 RHEL 8.x 或 RHEL 9.x 上安装 SQL Server 2022,使用 sqlcmd 命令行工具连接到 SQL Server,创建数据库并执行基本查询。
前提条件
在开始之前,请确保满足以下前提条件:
– 确保您使用的是受支持的 RHEL 版本(例如,RHEL 8 或 9)。
– 您需要具有 sudo 或 root 权限来安装软件。
– 至少 2 GB 的 RAM、6 GB 的空闲磁盘空间,以及支持的 CPU 架构(x64)。
步骤 1:启用 SELinux 强制模式
SQL Server 2022 支持在 RHEL 8.x 和 9.x 上运行。对于 RHEL 9,SQL Server 可以使用 SELinux(安全增强 Linux)作为受限应用程序运行,从而增强安全性。
首先,您需要启用 SELinux(对于 RHEL 9,启用 SELinux 是可选的,但建议启用),以便将 SQL Server 作为受限应用程序使用。
执行以下命令启用 SELinux 强制模式:
sestatus
sudo setenforce 1
如果 SELinux 在配置文件 `/etc/selinux/config` 中被禁用,该命令将无法生效。您需要在配置文件中启用 SELinux,并重新启动系统。
使用您喜欢的文本编辑器打开 `/etc/selinux/config` 文件:
sudo vi /etc/selinux/config
将 `SELINUX=disabled` 更改为 `SELINUX=enforcing`。
重新启动系统以使更改生效:
sudo reboot
系统重新启动后,检查 SELinux 状态,确认它处于强制模式:
getenforce
应该返回 `Enforcing`。
步骤 2:在 RHEL 上安装 SQL Server
运行以下 curl 命令以下载并配置 Microsoft SQL Server 仓库:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/$(rpm -E %{rhel})/mssql-server-2022.repo
接下来,使用以下命令安装 SQL Server 包:
sudo yum install -y mssql-server
如果您希望使用额外的安全性运行 SQL Server,可以安装 `mssql-server-selinux` 包,它为 SQL Server 增加了有助于与 SELinux 配合工作的特定规则:
sudo yum install -y mssql-server-selinux
安装完成后,运行设置脚本并按照提示设置“sa”帐户的密码,并选择 SQL Server 的版本。以下版本可以免费使用:Evaluation、Developer 和 Express。
sudo /opt/mssql/bin/mssql-conf setup
安装完成后,确认 SQL Server 是否正在运行:
sudo systemctl status mssql-server
如果未运行,请启动它:
sudo systemctl start mssql-server
为了允许远程连接,您需要在 RHEL 防火墙上打开 SQL Server 端口。默认情况下,SQL Server 使用 TCP 端口 1433。如果您的系统使用 FirewallD 作为防火墙,请运行以下命令:
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
现在,SQL Server 已在您的 RHEL 机器上启动并运行,随时可以使用!
步骤 3:安装 SQL Server 命令行工具
为了创建数据库,您需要使用一个可以在 SQL Server 上运行 Transact-SQL 命令的工具。以下是安装 SQL Server 命令行工具(如 sqlcmd 和 bcp 工具)的步骤。
首先,下载 Microsoft Red Hat 仓库配置文件。
对于 RHEL 9,请使用以下命令:
curl https://packages.microsoft.com/config/rhel/9/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
对于 RHEL 8,请使用以下命令:
curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
接下来,运行以下命令安装 `mssql-tools18` 和 `unixODBC-devel` 开发包:
sudo yum install -y mssql-tools18 unixODBC-devel
要更新到最新版本的 `mssql-tools`,请运行以下命令:
sudo yum check-update
sudo yum update mssql-tools18
为了每次登录时都能在 bash shell 中使用 `sqlcmd` 和 `bcp`,请通过以下命令更新 `~/.bash_profile` 中的 `PATH`:
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
source ~/.bash_profile
为了在所有会话中都能使用 `sqlcmd` 和 `bcp`,请通过以下命令将其位置添加到 `PATH`,编辑 `~/.bashrc` 文件:
echo ‘export PATH=”$PATH:/opt/mssql-tools18/bin”‘ >> ~/.bashrc
source ~/.bashrc
步骤 4:连接到 RHEL 上的 SQL Server
安装 SQL Server 后,您可以使用 `sqlcmd` 连接到它。
本地连接 SQL Server
sqlcmd -S localhost -U sa -P '<password>' -N -C
`-S`:指定服务器名称(本地连接使用 localhost)。
`-U`:指定用户名(使用 sa 作为系统管理员帐户)。
`-P`:指定您在配置过程中设置的密码。
`-N`:加密连接。
`-C`:信任服务器证书,无需验证。
如果连接成功,您将看到如下提示符:
1>
创建新的 SQL 数据库
在 `sqlcmd` 命令提示符下,粘贴以下 Transact-SQL 命令来创建一个测试数据库:
CREATE DATABASE TestDB;
接下来,编写查询语句以返回服务器上的所有数据库名称:
SELECT Name
FROM sys.databases;
前面的两个命令不会立即执行。您必须在新的一行输入 `GO` 来执行之前的命令:
GO
向 SQL 数据库插入数据
接下来,创建一个新表 `dbo.Inventory`,并插入两行数据。
USE TestDB;
CREATE TABLE dbo.Inventory (id INT, name NVARCHAR(50), quantity INT, PRIMARY KEY (id));
将数据插入到新表中:
INSERT INTO dbo.Inventory VALUES (1, 'banana', 150), (2, 'orange', 154);
输入 `GO` 执行前面的命令:
GO
查询 SQL 数据库中的数据
从 `sqlcmd` 命令提示符下,输入查询语句,返回 `dbo.Inventory` 表中 `quantity` 大于 152 的行:
SELECT * FROM dbo.Inventory WHERE quantity > 152;
GO
要结束 `sqlcmd` 会话,输入 `QUIT`:
QUIT
除了 `sqlcmd`,您还可以使用以下跨平台工具来管理 SQL Server:
– Azure Data Studio:跨平台的 GUI 数据库管理工具。
– Visual Studio Code:跨平台的 GUI 代码编辑器,通过 mssql 扩展运行 Transact-SQL 语句。
– PowerShell Core:基于 cmdlet 的跨平台自动化和配置工具。
– mssql-cli:跨平台的命令行界面,用于运行 Transact-SQL 命令。
通过本文,您已经成功在 RHEL 上安装了 SQL Server 2022,配置了 SQL Server,并创建了您的第一个数据库。您还学会了如何使用 `sqlcmd` 工具查询数据。











