本文主要介绍在基于RHEL 8.x或RHEL 9.x系统安装SQL Server 2022大致过程,同时包括使用sqlcmd
命令行工具连接到它以及创建数据库并运行基本查询。
先决条件
开始之前,请确保满足以下先决条件:
- 使用的是受支持的RHEL版本(例如RHEL 8或9)
- 需要sudo或root权限来安装软件
- 至少2GB的RAM、6GB的可用磁盘空间和受支持的CPU架构(x64)
步骤1:在RHEL上启用SELinux强制模式
SQL Server 2022支持在RHEL 8.x和9.x上运行,对于RHEL 9 ,SQL Server可以使用SELinux(Security-Enhanced Linux)作为受限应用程序运行,从而增强了安全性。
首先,需要启用SELinux(推荐使用RHEL 9),以便将SQL Server作为受限应用程序运行,命令如下:
sestatus sudo setenforce 1
该命令用于启用SELinux强制模式,如果在配置文件(/etc/selinux/config
)中禁用SELinux,则此命令将不起作用,这时需要在文件中启用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 Repositoryry:
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存储库配置文件。
对于Red Hat 9系统,使用以下命令:
curl https://packages.microsoft.com/config/rhel/9/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
对于Red Hat 8系统,使用以下命令:
curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
接下来,运行以下命令以安装带有unixODBC开发者包的mssql-tools18
。
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
,请通过编辑~/.bashrc
文件并使用以下命令将它们的路径添加到PATH:
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
表中数量大于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,并且对其进行简单配置,包括创建你的第一个数据库,同时还学会了如何使用sqlcmd
工具查询数据。