安装 SQL Server
若要在 RHEL 上配置 SQL Server,请在终端中运行以下命令以安装 mssql-server 包:
- 下载 Microsoft SQL Server 2017 Red Hat 存储库配置文件:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
提示
如果想安装 SQL Server 2019,必须改为注册 SQL Server 2019 存储库。 使用以下命令安装 SQL Server 2019:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
- 运行以下命令以安装 SQL Server:
sudo yum install -y mssql-server
- 包安装完成后,运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。
sudo /opt/mssql/bin/mssql-conf setup
提示
以下 SQL Server 2017 版本是免费提供许可的:Evaluation、Developer 和 Express 版。
备注
请确保为 SA 帐户指定强密码(最少 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号)。
- 完成配置后,验证服务是否正在运行:
systemctl status 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 计算机上运行,随时可以使用!
安装 SQL Server
备注
以下用于 SQL Server 2019 的命令指向 RHEL 8 存储库。 RHEL 8 未预安装 SQL Server 所需的 python2。 有关详细信息,请参阅以下博客,了解如何安装 python2 并将其配置为默认解释器: https://www.redhat.com/en/blog/installing-microsoft-sql-server-red-hat-enterprise-linux-8-beta 。
如果使用 RHEL 7,请将以下路径更改为 /rhel/7
而不是 /rhel/8
。
若要在 RHEL 上配置 SQL Server,请在终端中运行以下命令以安装 mssql-server 包:
- 下载 Microsoft SQL Server 2019 Red Hat 存储库配置文件:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
- 运行以下命令以安装 SQL Server:
sudo yum install -y mssql-server
- 包安装完成后,运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。
sudo /opt/mssql/bin/mssql-conf setup
备注
请确保为 SA 帐户指定强密码(最少 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号)。
- 完成配置后,验证服务是否正在运行:
systemctl status 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 2019 正在 RHEL 计算机上运行,随时可以使用!
安装 SQL Server 命令行工具
若要创建数据库,则需要使用可在 SQL Server 上运行 Transact-SQL 语句的工具进行连接。 以下步骤将安装 SQL Server 命令行工具:sqlcmd 和 bcp。
- 下载 Microsoft Red Hat 存储库配置文件。
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
- 如果安装了早期版本的 mssql-tools,请删除所有旧的 unixODBC 包。
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
- 运行以下命令,以使用 unixODBC 开发人员包安装 mssql-tools。
sudo yum install -y mssql-tools unixODBC-devel
- 为方便起见,向 PATH 环境变量添加
/opt/mssql-tools/bin/
。 这样可以在不指定完整路径的情况下运行这些工具。 运行以下命令以修改登录会话和交互式/非登录会话的路径 :
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
安装 SQL Server 命令行工具
若要创建数据库,则需要使用可在 SQL Server 上运行 Transact-SQL 语句的工具进行连接。 以下步骤将安装 SQL Server 命令行工具:sqlcmd 和 bcp。
- 下载 Microsoft Red Hat 存储库配置文件。
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo
- 如果安装了早期版本的 mssql-tools,请删除所有旧的 unixODBC 包。
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
- 运行以下命令,以使用 unixODBC 开发人员包安装 mssql-tools。
sudo yum install -y mssql-tools unixODBC-devel
- 为方便起见,向 PATH 环境变量添加
/opt/mssql-tools/bin/
。 这样可以在不指定完整路径的情况下运行这些工具。 运行以下命令以修改登录会话和交互式/非登录会话的路径 :
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
本地连接
以下步骤使用 sqlcmd 本地连接到新的 SQL Server 实例。
- 使用 SQL Server 名称 (-S),用户名 (-U) 和密码 (-P) 的参数运行 sqlcmd 。 在本教程中,用户进行本地连接,因此服务器名称为
localhost
。 用户名为SA
,密码是在安装过程中为 SA 帐户提供的密码。
sqlcmd -S localhost -U SA -P '<YourPassword>'
提示
可以在命令行上省略密码,以收到密码输入提示。
提示
如果以后决定进行远程连接,请指定 -S 参数的计算机名称或 IP 地址,并确保防火墙上的端口 1433 已打开。
- 如果成功,应会显示 sqlcmd 命令提示符:
1>
。 - 如果连接失败,先尝试诊断错误消息中所述的问题。 然后查看连接故障排除建议。
创建和查询数据
下面各部分将逐步介绍如何使用 sqlcmd 新建数据库、添加数据并运行简单查询。
新建数据库
以下步骤创建一个名为 TestDB
的新数据库。
- 在 sqlcmd 命令提示符中,粘贴以下 Transact-SQL 命令以创建测试数据库:
CREATE DATABASE TestDB
- 在下一行中,编写一个查询以返回服务器上所有数据库的名称:
SELECT Name from sys.Databases
- 前两个命令没有立即执行。 必须在新行中键入
GO
才能执行以前的命令:
GO
提示
若要详细了解如何编写 Transact-SQL 语句和查询,请参阅教程:编写 Transact-SQL 语句。
插入数据
接下来创建一个新表 Inventory
,然后插入两个新行。
- 在 sqlcmd 命令提示符中,将上下文切换到新的
TestDB
数据库:
USE TestDB
- 创建名为
Inventory
的新表:
CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
- 将数据插入新表:
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
- 要执行上述命令的类型
GO
:
GO
选择数据
现在,运行查询以从 Inventory
表返回数据。
- 通过 sqlcmd 命令提示符输入查询,以返回
Inventory
表中数量大于 152 的行:
SELECT * FROM Inventory WHERE quantity > 152;
- 执行此命令:
GO
退出 sqlcmd 命令提示符
要结束 sqlcmd 会话,请键入 QUIT
:
QUIT