零、 前言
本快速入门介绍如何在 Red Hat Enterprise Linux (RHEL) 7/8 上安装 SQL Server 2019。 然后使用 sqlcmd 进行连接,创建第一个数据库并运行查询
先决条件
必须拥有 RHEL 7.7 - 7.8 或 8.0 - 8.3 计算机(内存至少为 2 GB)
官网文档地址:
https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-red-hat?view=sql-server-ver15
一、 下载 Microsoft SQL Server 2017 Red Hat 存储库配置文件
对于 RHEL7:
curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
对于 RHEL7: Microsoft SQL Server 2019版本
curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo
对于 RHEL8:
curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
二、 运行以下命令以安装 SQL Server
yum install -y mssql-server
三、 软件包安装完成后,运行 mssql-conf setup 安装命令,按照提示设置 SA 密码并选择版本
/opt/mssql/bin/mssql-conf setup
备注
请确保为 SA 帐户指定强密码(最少 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号)。
[root@localhost ~]# /opt/mssql/bin/mssql-conf setup 选择 SQL Server 的一个版本: 1) Evaluation (免费,无生产许可,180 天限制) 2) Developer (免费,无生产许可) 3) Express (免费) 4) Web (付费版) 5) Standard (付费版) 6) Enterprise (付费版) 7) Enterprise Core (付费版) 8) 我通过零售渠道购买了许可证并具有要输入的产品密钥。 可在以下位置找到有关版本的详细信息: https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x804 使用此软件的付费版本需要通过以下途径获取单独授权 Microsoft 批量许可计划。 选择付费版本即表示你具有适用的 要安装和运行此软件的就地许可证数量。 输入版本(1-8): 3 可以在以下位置找到此产品的许可条款: /usr/share/doc/mssql-server 或从以下位置下载: https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x804 可以从以下位置查看隐私声明: https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x804 选择 SQL Server 的语言: (1) English (2) Deutsch (3) Español (4) Français (5) Italiano (6) 日本語 (7) 한국어 (8) Português (9) Русский (10) 中文 – 简体 (11) 中文 (繁体) 输入选项 1-11:10 输入 SQL Server 系统管理员密码: 确认 SQL Server 系统管理员密码: 正在配置 SQL Server... ForceFlush is enabled for this instance. ForceFlush feature is enabled for log durability. Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service. 安装程序已成功完成。SQL Server 正在启动。
四、 启动服务
systemctl status mssql-server
五、 确认一下是否启动成功
systemctl status mssql-server
六、 设置防火墙
要连接数据库,首先要打开防火墙上1433端口,也就是,增加tcp端口1433到公共区域,并且永久生效。
#添加防火墙端口 1433 firewall-cmd --zone=public --add-port=1433/tcp --permanent firewall-cmd --reload
七、 下载客户端工具源
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
八、 安装客户端工具
yum install -y mssql-tools
九、 本地连接
连接命令:
sqlcmd -S localhost -U SA -P '<YourPassword>'
以下步骤使用 sqlcmd 本地连接到新的 SQL Server 实例。
1、使用 SQL Server 名称 (-S),用户名 (-U) 和密码 (-P) 的参数运行 sqlcmd 。 在本教程中,用户进行本地连接,因此服务器名称为 localhost。 用户名为 SA,密码是在安装过程中为 SA 帐户提供的密码
sqlcmd -S localhost -U SA -P '<YourPassword>'
如果以后决定进行远程连接,请指定 -S 参数的计算机名称或 IP 地址,并确保防火墙上的端口 1433 已打开。
2、如果成功,应会显示 sqlcmd 命令提示符:1>
如果连接失败,先尝试诊断错误消息中所述的问题。 然后查看连接故障排除建议
十、 安装完整示例
连接成功 Last login: Fri Oct 22 11:15:43 2021 from 10.18.40.119 [root@localhost ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 232 100 232 0 0 514 0 --:--:-- --:--:-- --:--:-- 515 [root@localhost ~]# yum install -y mssql-server 已加载插件:fastestmirror, langpacks Determining fastest mirrors * base: ftp.sjtu.edu.cn * extras: ftp.sjtu.edu.cn * updates: ftp.sjtu.edu.cn base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 packages-microsoft-com-mssql-server-2017 | 3.0 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/5): packages-microsoft-com-mssql-server-2017/primary_db | 31 kB 00:00:00 (2/5): base/7/x86_64/group_gz | 153 kB 00:00:00 (3/5): extras/7/x86_64/primary_db | 243 kB 00:00:00 (4/5): updates/7/x86_64/primary_db | 12 MB 00:00:02 (5/5): base/7/x86_64/primary_db | 6.1 MB 00:00:04 正在解决依赖关系 --> 正在检查事务 ---> 软件包 mssql-server.x86_64.0.14.0.3411.3-16 将被 安装 --> 正在处理依赖关系 libatomic,它被软件包 mssql-server-14.0.3411.3-16.x86_64 需要 --> 正在处理依赖关系 cyrus-sasl,它被软件包 mssql-server-14.0.3411.3-16.x86_64 需要 --> 正在处理依赖关系 cyrus-sasl-gssapi,它被软件包 mssql-server-14.0.3411.3-16.x86_64 需要 --> 正在检查事务 ---> 软件包 cyrus-sasl.x86_64.0.2.1.26-23.el7 将被 安装 ---> 软件包 cyrus-sasl-gssapi.x86_64.0.2.1.26-23.el7 将被 安装 ---> 软件包 libatomic.x86_64.0.4.8.5-44.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ============================================================================================================================================================================= Package 架构 版本 源 大小 ============================================================================================================================================================================= 正在安装: mssql-server x86_64 14.0.3411.3-16 packages-microsoft-com-mssql-server-2017 209 M 为依赖而安装: cyrus-sasl x86_64 2.1.26-23.el7 base 88 k cyrus-sasl-gssapi x86_64 2.1.26-23.el7 base 41 k libatomic x86_64 4.8.5-44.el7 base 51 k 事务概要 ============================================================================================================================================================================= 安装 1 软件包 (+3 依赖软件包) 总下载量:209 M 安装大小:1.0 G Downloading packages: 警告:/var/cache/yum/x86_64/7/base/packages/cyrus-sasl-gssapi-2.1.26-23.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY cyrus-sasl-gssapi-2.1.26-23.el7.x86_64.rpm 的公钥尚未安装 (1/4): cyrus-sasl-gssapi-2.1.26-23.el7.x86_64.rpm | 41 kB 00:00:00 (2/4): cyrus-sasl-2.1.26-23.el7.x86_64.rpm | 88 kB 00:00:00 (3/4): libatomic-4.8.5-44.el7.x86_64.rpm | 51 kB 00:00:00 警告:/var/cache/yum/x86_64/7/packages-microsoft-com-mssql-server-2017/packages/mssql-server-14.0.3411.3-16.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID be1229cf: NOKEYTA mssql-server-14.0.3411.3-16.x86_64.rpm 的公钥尚未安装 (4/4): mssql-server-14.0.3411.3-16.x86_64.rpm | 209 MB 00:00:22 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 总计 9.1 MB/s | 209 MB 00:00:23 从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥 导入 GPG key 0xF4A80EB5: 用户ID : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>" 指纹 : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 软件包 : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda) 来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 从 https://packages.microsoft.com/keys/microsoft.asc 检索密钥 导入 GPG key 0xBE1229CF: 用户ID : "Microsoft (Release signing) <gpgsecurity@microsoft.com>" 指纹 : bc52 8686 b50d 79e3 39d3 721c eb3e 94ad be12 29cf 来自 : https://packages.microsoft.com/keys/microsoft.asc Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : cyrus-sasl-2.1.26-23.el7.x86_64 1/4 正在安装 : libatomic-4.8.5-44.el7.x86_64 2/4 正在安装 : cyrus-sasl-gssapi-2.1.26-23.el7.x86_64 3/4 正在安装 : mssql-server-14.0.3411.3-16.x86_64 4/4 +--------------------------------------------------------------+ 请运行 "sudo /opt/mssql/bin/mssql-conf setup" 完成 Microsoft SQL Server 的设置 +--------------------------------------------------------------+ 需重启 SQL Server 才能应用此设置。请运行 "systemctl restart mssql-server.service"。 验证中 : cyrus-sasl-gssapi-2.1.26-23.el7.x86_64 1/4 验证中 : libatomic-4.8.5-44.el7.x86_64 2/4 验证中 : cyrus-sasl-2.1.26-23.el7.x86_64 3/4 验证中 : mssql-server-14.0.3411.3-16.x86_64 4/4 已安装: mssql-server.x86_64 0:14.0.3411.3-16 作为依赖被安装: cyrus-sasl.x86_64 0:2.1.26-23.el7 cyrus-sasl-gssapi.x86_64 0:2.1.26-23.el7 libatomic.x86_64 0:4.8.5-44.el7 完毕! [root@localhost ~]# /opt/mssql/bin/mssql-conf setup 选择 SQL Server 的一个版本: 1) Evaluation (免费,无生产许可,180 天限制) 2) Developer (免费,无生产许可) 3) Express (免费) 4) Web (付费版) 5) Standard (付费版) 6) Enterprise (付费版) 7) Enterprise Core (付费版) 8) 我通过零售渠道购买了许可证并具有要输入的产品密钥。 可在以下位置找到有关版本的详细信息: https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x804 使用此软件的付费版本需要通过以下途径获取单独授权 Microsoft 批量许可计划。 选择付费版本即表示你具有适用的 要安装和运行此软件的就地许可证数量。 输入版本(1-8): 3 可以在以下位置找到此产品的许可条款: /usr/share/doc/mssql-server 或从以下位置下载: https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x804 可以从以下位置查看隐私声明: https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x804 选择 SQL Server 的语言: (1) English (2) Deutsch (3) Español (4) Français (5) Italiano (6) 日本語 (7) 한국어 (8) Português (9) Русский (10) 中文 – 简体 (11) 中文 (繁体) 输入选项 1-11:10 输入 SQL Server 系统管理员密码: 确认 SQL Server 系统管理员密码: 正在配置 SQL Server... ForceFlush is enabled for this instance. ForceFlush feature is enabled for log durability. Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service. 安装程序已成功完成。SQL Server 正在启动。 [root@localhost ~]# systemctl status mssql-server ● mssql-server.service - Microsoft SQL Server Database Engine Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled) Active: active (running) since 五 2021-10-22 11:20:16 CST; 51s ago Docs: https://docs.microsoft.com/en-us/sql/linux Main PID: 11269 (sqlservr) CGroup: /system.slice/mssql-server.service ├─11269 /opt/mssql/bin/sqlservr └─11293 /opt/mssql/bin/sqlservr 10月 22 11:20:19 localhost.localdomain sqlservr[11269]: 2021-10-22 11:20:19.60 spid11s 2021-10-22 11:20:19.60 spid11s Recovery is writing a checkpoint i...required. 10月 22 11:20:19 localhost.localdomain sqlservr[11269]: 2021-10-22 11:20:19.62 spid7s 2021-10-22 11:20:19.62 spid7s 0 transactions rolled back in data...required. 10月 22 11:20:19 localhost.localdomain sqlservr[11269]: 2021-10-22 11:20:19.62 spid7s 2021-10-22 11:20:19.62 spid7s Recovery is writing a checkpoint i...required. 10月 22 11:20:19 localhost.localdomain sqlservr[11269]: 2021-10-22 11:20:19.74 spid11s 2021-10-22 11:20:19.74 spid11s Polybase feature disabled. 10月 22 11:20:19 localhost.localdomain sqlservr[11269]: 2021-10-22 11:20:19.74 spid11s 2021-10-22 11:20:19.74 spid11s Clearing tempdb database. 10月 22 11:20:20 localhost.localdomain sqlservr[11269]: 2021-10-22 11:20:19.99 spid11s 2021-10-22 11:20:20.00 spid11s Starting up database 'tempdb'. 10月 22 11:20:20 localhost.localdomain sqlservr[11269]: 2021-10-22 11:20:20.11 spid20s Service Broker 2021-10-22 11:20:20.11 spid20s The Service Broker ...ed state. 10月 22 11:20:20 localhost.localdomain sqlservr[11269]: 2021-10-22 11:20:20.12 spid20s Database Mirroring 2021-10-22 11:20:20.12 spid20s The Database Mi...ed state. 10月 22 11:20:20 localhost.localdomain sqlservr[11269]: 2021-10-22 11:20:20.15 spid20s 2021-10-22 11:20:20.15 spid20s Service Broker manager has started. 10月 22 11:20:20 localhost.localdomain sqlservr[11269]: 2021-10-22 11:20:20.24 spid7s 2021-10-22 11:20:20.25 spid7s Recovery is complete. This is an i...required. Hint: Some lines were ellipsized, use -l to show in full. [root@localhost ~]# ps -ef | grep mssql mssql 11269 1 0 11:20 ? 00:00:00 /opt/mssql/bin/sqlservr mssql 11293 11269 6 11:20 ? 00:00:05 /opt/mssql/bin/sqlservr root 13222 5998 0 11:21 pts/1 00:00:00 grep --color=auto mssql [root@localhost ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent success [root@localhost ~]# firewall-cmd --reload success [root@localhost ~]# curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 193 100 193 0 0 403 0 --:--:-- --:--:-- --:--:-- 403 [root@localhost ~]# yum install -y mssql-tools 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.ustc.edu.cn * extras: mirrors.ustc.edu.cn * updates: mirrors.ustc.edu.cn packages-microsoft-com-prod | 3.0 kB 00:00:00 packages-microsoft-com-prod/primary_db | 496 kB 00:00:00 正在解决依赖关系 --> 正在检查事务 ---> 软件包 mssql-tools.x86_64.0.17.8.1.1-1 将被 安装 --> 正在处理依赖关系 msodbcsql17 >= 17.3.0.0,它被软件包 mssql-tools-17.8.1.1-1.x86_64 需要 --> 正在检查事务 ---> 软件包 msodbcsql17.x86_64.0.17.8.1.1-1 将被 安装 --> 正在处理依赖关系 unixODBC >= 2.3.1,它被软件包 msodbcsql17-17.8.1.1-1.x86_64 需要 --> 正在处理依赖关系 libodbcinst.so.2()(64bit),它被软件包 msodbcsql17-17.8.1.1-1.x86_64 需要 --> 正在检查事务 ---> 软件包 unixODBC.x86_64.0.2.3.7-1.rh 将被 安装 --> 解决依赖关系完成 依赖关系解决 ============================================================================================================================================================================= Package 架构 版本 源 大小 ============================================================================================================================================================================= 正在安装: mssql-tools x86_64 17.8.1.1-1 packages-microsoft-com-prod 287 k 为依赖而安装: msodbcsql17 x86_64 17.8.1.1-1 packages-microsoft-com-prod 905 k unixODBC x86_64 2.3.7-1.rh packages-microsoft-com-prod 213 k 事务概要 ============================================================================================================================================================================= 安装 1 软件包 (+2 依赖软件包) 总下载量:1.4 M 安装大小:3.6 M Downloading packages: (1/3): mssql-tools-17.8.1.1-1.x86_64.rpm | 287 kB 00:00:00 (2/3): unixODBC-2.3.7-1.rh.x86_64.rpm | 213 kB 00:00:00 (3/3): msodbcsql17-17.8.1.1-1.x86_64.rpm | 905 kB 00:00:00 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 总计 2.2 MB/s | 1.4 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : unixODBC-2.3.7-1.rh.x86_64 1/3 The license terms for this product can be downloaded from https://aka.ms/odbc17eula and found in /usr/share/doc/msodbcsql17/LICENSE.txt . By entering 'YES', you indicate that you accept the license terms. Do you accept the license terms? (Enter YES or NO) YES 正在安装 : msodbcsql17-17.8.1.1-1.x86_64 2/3 The license terms for this product can be downloaded from http://go.microsoft.com/fwlink/?LinkId=746949 and found in /usr/share/doc/mssql-tools/LICENSE.txt . By entering 'YES', you indicate that you accept the license terms. Do you accept the license terms? (Enter YES or NO) YES 正在安装 : mssql-tools-17.8.1.1-1.x86_64 3/3 验证中 : msodbcsql17-17.8.1.1-1.x86_64 1/3 验证中 : mssql-tools-17.8.1.1-1.x86_64 2/3 验证中 : unixODBC-2.3.7-1.rh.x86_64 3/3 已安装: mssql-tools.x86_64 0:17.8.1.1-1 作为依赖被安装: msodbcsql17.x86_64 0:17.8.1.1-1 unixODBC.x86_64 0:2.3.7-1.rh 完毕! [root@localhost ~]#