先决条件
您必须具有至少2 GB内存的RHEL 7.3或7.4计算机。
要在您自己的计算机上安装Red Hat Enterprise Linux,请访问https://access.redhat.com/products/red-hat-enterprise-linux/evaluation。您还可以在Azure中创建RHEL虚拟机。请参阅使用Azure CLI创建和管理Linux VM,并--image RHEL
在调用中使用az vm create
。
如果您以前安装了SQL Server 2017的CTP或RC版本,则必须先删除旧存储库,然后再执行这些步骤。有关更多信息,请参阅为SQL Server 2017和2019配置Linux存储库。
有关其他系统要求,请参阅Linux上SQL Server的系统要求。
安装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,则必须注册Preview(2019)存储库。对SQL Server 2019安装使用以下命令:庆典复制sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-preview.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个字符,包括大写和小写字母,基数为10的数字和/或非字母数字符号)。 - 配置完成后,验证服务是否正在运行:庆典复制
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上运行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
- 为方便起见,请添加
/opt/mssql-tools/bin/
到PATH环境变量中。这使您可以在不指定完整路径的情况下运行工具。运行以下命令修改登录会话和交互/非登录会话的PATH:庆典复制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命令以创建测试数据库:SQL复制
CREATE DATABASE TestDB
- 在下一行,编写一个查询以返回服务器上所有数据库的名称:SQL复制
SELECT Name from sys.Databases
- 前两个命令没有立即执行。您必须键入
GO
新行才能执行以前的命令:SQL复制GO
小费
要了解有关编写Transact-SQL语句和查询的更多信息,请参阅教程:编写Transact-SQL语句。
插入数据
接下来创建一个新表,Inventory
并插入两个新行。
- 从sqlcmd命令提示符,将上下文切换到新
TestDB
数据库:SQL复制USE TestDB
- 创建名为的新表
Inventory
:SQL复制CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
- 将数据插入新表:SQL复制
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
- 键入
GO
以执行以前的命令:SQL复制GO
选择数据
现在,运行查询以从Inventory
表中返回数据。
- 在sqlcmd命令提示符下,输入一个查询,该查询返回
Inventory
数量大于152 的表中的行:SQL复制SELECT * FROM Inventory WHERE quantity > 152;
- 执行命令:SQL复制
GO
退出sqlcmd命令提示符
要结束sqlcmd会话,请键入QUIT
:SQL复制
QUIT
性能最佳实践
在Linux上安装SQL Server之后,请查看配置Linux和SQL Server的最佳实践,以提高生产方案的性能。有关更多信息,请参阅Linux上SQL Server的性能最佳实践和配置指南。
跨平台数据工具
除sqlcmd外,您还可以使用以下跨平台工具来管理SQL Server:
Azure Data Studio | 跨平台GUI数据库管理实用程序。 |
MSSQL-CLI | 用于运行Transact-SQL命令的跨平台命令行界面。 |
Visual Studio代码 | 跨平台GUI代码编辑器,使用mssql扩展运行Transact-SQL语句。 |
从Windows连接
Windows上的SQL Server工具以与连接到任何远程SQL Server实例相同的方式连接到Linux上的SQL Server实例。
如果您有可以连接到Linux计算机的Windows计算机,请从运行sqlcmd的Windows命令提示符处尝试本主题中的相同步骤。只需验证您使用目标Linux计算机名称或IP地址而不是localhost,并确保TCP端口1433已打开。如果从Windows连接有任何问题,请参阅连接故障排除建议。
对于在Windows上运行但在Linux上连接到SQL Server的其他工具,请参阅:
其他部署方案
对于其他安装方案,请参阅以下资源:
升级 | 了解如何在Linux上升级现有的SQL Server安装 |
卸载 | 在Linux上卸载SQL Server |
无人值守安装 | 了解如何在没有提示的情况下编写安装脚本 |
离线安装 | 了解如何手动下载脱机安装包 |
转载自微软官网https://docs.microsoft.com/zh-cn/sql/sql-server/editions-and-components-of-sql-server-2017?view=sql-server-2017