1.CentOS Stream 8 安装 SQL Server 2019 所需python2 作为解释器。 在开始 SQL Server 2019 的安装步骤之前,请执行以下命令,并验证是否选择了 python2,同时需要安装OpenSSL 1.0
[root@ttzoCentOSStream8 ~]# alternatives --config python
共有 3 个提供“python”的程序。
选项 命令
-----------------------------------------------
*+ 1 /usr/libexec/no-python
2 /usr/bin/python3
3 /usr/bin/python3.9
按 Enter 保留当前选项[+],或者键入选项编号:
可以看那到,并没有安装python2,需要安装python2与OpenSSL 1.0
dnf install python2
dnf install compat-openssl10
选择python2作为解释器版本
[root@ttzoCentOSStream8 ~]# alternatives --config python
共有 4 个提供“python”的程序。
选项 命令
-----------------------------------------------
*+ 1 /usr/libexec/no-python
2 /usr/bin/python3
3 /usr/bin/python3.9
4 /usr/bin/python2
按 Enter 保留当前选项[+],或者键入选项编号: 4
[root@ttzoCentOSStream8 ~]# alternatives --config python
共有 4 个提供“python”的程序。
选项 命令
-----------------------------------------------
* 1 /usr/libexec/no-python
2 /usr/bin/python3
3 /usr/bin/python3.9
+ 4 /usr/bin/python2
按 Enter 保留当前选项[+],或者键入选项编号: ^C
[root@ttzoCentOSStream8 ~]#
2.下载 SQL Server 2019 (15.x) Red Hat 存储库配置文件
curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
#这里也可以选择Centos的存储库配置文件,但是CentOS8 与CentOS Stream 8最好划分清楚。CentOS Stream 8对标的是RHEL8,所以建议配置成RHEL8DE 存储库配置文件
3.创建数据缓存
[root@ttzoCentOSStream8 yum.repos.d]# dnf makecache
CentOS Stream 8 - AppStream 22 kB/s | 4.4 kB 00:00
CentOS Stream 8 - BaseOS 19 kB/s | 3.9 kB 00:00
CentOS Stream 8 - Extras 16 kB/s | 2.9 kB 00:00
CentOS Stream 8 - Extras common packages 4.4 kB/s | 3.0 kB 00:00
packages-microsoft-com-mssql-server-2019 1.1 MB/s | 4.9 MB 00:04
元数据缓存已建立。
[root@ttzoCentOSStream8 yum.repos.d]#
4.运行以下命令以安装 SQL Server
[root@ttzoCentOSStream8 yum.repos.d]# dnf install mssql-server
上次元数据过期检查:0:00:31 前,执行于 2022年11月01日 星期二 13时21分33秒。
依赖关系解决。
================================================================================
软件包 架构 版本 仓库 大小
================================================================================
安装:
mssql-server
x86_64 15.0.4261.1-2 packages-microsoft-com-mssql-server-2019 228 M
事务概要
================================================================================
安装 1 软件包
总下载:228 M
安装大小:1.1 G
确定吗?[y/N]:
5.包安装完成后,使用其完整路径运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。
[root@ttzoCentOSStream8 /]# /opt/mssql/bin/mssql-conf setup
选择 SQL Server 的一个版本:
1) Evaluation (免费,无生产许可,180 天限制)
2) Developer (免费,无生产许可)
3) Express (免费)
4) Web (付费版)
5) Standard (付费版)
6) Enterprise (付费版) - CPU 核心利用率限制为 20 个物理/40 个超线程
7) Enterprise Core (付费版) - CPU 核心利用率达到操作系统最大值
8) 我通过零售渠道购买了许可证并具有要输入的产品密钥。
可在以下位置找到有关版本的详细信息:
https://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x804
使用此软件的付费版本需要通过以下途径获取单独授权
Microsoft 批量许可计划。
选择付费版本即表示你具有适用的
要安装和运行此软件的就地许可证数量。
输入版本(1-8): 8
输入 25 个字符的产品密钥: *****-*****-*****-*****-*****
可以在以下位置找到此产品的许可条款:
/usr/share/doc/mssql-server 或从以下位置下载:
https://go.microsoft.com/fwlink/?LinkId=2104294&clcid=0x804
可以从以下位置查看隐私声明:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x804
接受此许可条款吗? [Yes/No]:yes
选择 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...
已成功处理授权 PID。新版本为 [Enterprise Edition]。
ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server.service → /usr/lib/systemd/system/mssql-server.service.
安装程序已成功完成。SQL Server 正在启动。
[root@ttzoCentOSStream8 /]#
注意:安装的时候如果是收费的版本,建议直接按照提示先输入产品密钥,然后按照提示选择语言后系统会自动安装并校验密钥针对的版本。如果是免费的版本则直接选择进行安装即可。收费的版本如果直接安装,没有进行密钥注册这一步在先,则在试用期结束后输入密钥或者通过其他方式处理密钥问题即可。
6.查看数据库状态是否正常
[root@ttzoCentOSStream8 /]# systemctl status mssql-server
● mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendo>
Active: active (running) since Tue 2022-11-01 13:33:27 CST; 6min ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 19898 (sqlservr)
Tasks: 191
Memory: 780.6M
CGroup: /system.slice/mssql-server.service
├─19898 /opt/mssql/bin/sqlservr
└─19931 /opt/mssql/bin/sqlservr
11月 01 13:33:32 ttzoCentOSStream8 sqlservr[19931]: [79B blob data]
11月 01 13:33:32 ttzoCentOSStream8 sqlservr[19931]: [75B blob data]
11月 01 13:33:32 ttzoCentOSStream8 sqlservr[19931]: [87B blob data]
11月 01 13:33:32 ttzoCentOSStream8 sqlservr[19931]: [96B blob data]
11月 01 13:33:32 ttzoCentOSStream8 sqlservr[19931]: [91B blob data]
11月 01 13:33:32 ttzoCentOSStream8 sqlservr[19931]: [120B blob data]
11月 01 13:33:32 ttzoCentOSStream8 sqlservr[19931]: [100B blob data]
11月 01 13:33:32 ttzoCentOSStream8 sqlservr[19931]: [124B blob data]
11月 01 13:33:32 ttzoCentOSStream8 sqlservr[19931]: [73B blob data]
11月 01 13:33:32 ttzoCentOSStream8 sqlservr[19931]: [71B blob data]
lines 1-21/21 (END)
7.防火墙开通端口并且查看是否开通成功:
[root@ttzoCentOSStream8 /]# firewall-cmd --zone=public --add-port=1433/tcp --permanent
success
[root@ttzoCentOSStream8 /]# firewall-cmd --reload
success
[root@ttzoCentOSStream8 /]# firewall-cmd --zone=public --query-port=1433/tcp
yes
[root@ttzoCentOSStream8 /]#
8.selinux放行1433端口并查看是否放行成功
[root@ttzoCentOSStream8 /]# semanage port -a -t ssh_port_t -p tcp 1433
ValueError: 已定义端口 tcp/1433
[root@ttzoCentOSStream8 /]# semanage port -l |grep 1433
mssql_port_t tcp 1433-1434
mssql_port_t udp 1433-1434
ssh_port_t tcp 1433, 3301, 22
[root@ttzoCentOSStream8 /]#
9.安装命令行工具
9.1 下载存储库配置文件(下载RHEL8的即可)
curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo
9.2 建立缓存
[root@ttzoCentOSStream8 /]# dnf makecache
CentOS Stream 8 - AppStream 25 kB/s | 4.4 kB 00:00
CentOS Stream 8 - BaseOS 24 kB/s | 3.9 kB 00:00
CentOS Stream 8 - Extras 13 kB/s | 2.9 kB 00:00
CentOS Stream 8 - Extras common packages 3.6 kB/s | 3.0 kB 00:00
packages-microsoft-com-prod 959 kB/s | 4.8 MB 00:05
packages-microsoft-com-mssql-server-2019 4.8 kB/s | 3.0 kB 00:00
元数据缓存已建立。
[root@ttzoCentOSStream8 /]#
9.3 如果安装了早期版本的 mssql-tools,请删除所有旧的 unixODBC 包
[root@ttzoCentOSStream8 /]# dnf remove unixODBC-utf16 unixODBC-utf16-devel
未找到匹配的参数: unixODBC-utf16
未找到匹配的参数: unixODBC-utf16-devel
没有软件包需要移除。
依赖关系解决。
无需任何处理。
完毕!
[root@ttzoCentOSStream8 /]#
9.4 运行以下命令,以使用 unixODBC 开发人员包安装 mssql-tools
root@ttzoCentOSStream8 /]# dnf install mssql-tools unixODBC-devel
上次元数据过期检查:0:08:39 前,执行于 2022年11月01日 星期二 13时52分59秒。
依赖关系解决。
================================================================================
软件包 架构 版本 仓库 大小
================================================================================
安装:
mssql-tools x86_64 17.10.1.1-1 packages-microsoft-com-prod 291 k
unixODBC-devel x86_64 2.3.7-1.rh packages-microsoft-com-prod 42 k
安装依赖关系:
msodbcsql17 x86_64 17.10.1.1-1 packages-microsoft-com-prod 907 k
事务概要
================================================================================
安装 3 软件包
总下载:1.2 M
安装大小:3.1 M
确定吗?[y/N]: y
下载软件包:
(1/3): unixODBC-devel-2.3.7-1.rh.x86_64.rpm 46 kB/s | 42 kB 00:00
(2/3): mssql-tools-17.10.1.1-1.x86_64.rpm 246 kB/s | 291 kB 00:01
(3/3): msodbcsql17-17.10.1.1-1.x86_64.rpm 515 kB/s | 907 kB 00:01
--------------------------------------------------------------------------------
总计 700 kB/s | 1.2 MB 00:01
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
运行脚本: msodbcsql17-17.10.1.1-1.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.10.1.1-1.x86_64 1/3
运行脚本: msodbcsql17-17.10.1.1-1.x86_64 1/3
odbcinst: Driver installed. Usage count increased to 1.
Target directory is /etc
运行脚本: mssql-tools-17.10.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.10.1.1-1.x86_64 2/3
安装 : unixODBC-devel-2.3.7-1.rh.x86_64 3/3
运行脚本: msodbcsql17-17.10.1.1-1.x86_64 3/3
运行脚本: unixODBC-devel-2.3.7-1.rh.x86_64 3/3
验证 : msodbcsql17-17.10.1.1-1.x86_64 1/3
验证 : mssql-tools-17.10.1.1-1.x86_64 2/3
验证 : unixODBC-devel-2.3.7-1.rh.x86_64 3/3
已安装:
msodbcsql17-17.10.1.1-1.x86_64 mssql-tools-17.10.1.1-1.x86_64
unixODBC-devel-2.3.7-1.rh.x86_64
完毕!
[root@ttzoCentOSStream8 /]#
9.5 为方便起见,将 /opt/mssql-tools/bin/ 添加到 PATH环境变量,以便可从 bash shell 访问 sqlcmd 或 bcp。
9.5.1 对于交互式会话,请使用以下命令在 ~/.bash_profile 文件中修改 PATH 环境变量:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
9.5.2 对于非交互式会话,请使用以下命令在 ~/.bashrc 文件中修改 PATH 环境变量:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
9.5.3 或者直接添加环境变量
[root@ttzoCentOSStream8 /]# vim /etc/profile
#文件最末为添加以下内容
export PATH=$PATH:/opt/mssql-tools/bin
#重新加载环境变量配置文件
[root@ttzoCentOSStream8 /]# source /etc/profile
9.6 尝试本地登录,如果出现“1>”就说明登录成功了
[root@ttzoCentOSStream8 ~]# sqlcmd -S 127.0.0.1 -U sa -P Mssqlserver_3301
1>
9.7 随便查询一下关于数据库额信息,如果能够输出就说明数据库已经完全安装成功了
[root@ttzoCentOSStream8 ~]# sqlcmd -S 127.0.0.1 -U sa -P Mssqlserver_3301
1> select @@version;
2> go
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL Server 2019 (RTM-CU18) (KB5017593) - 15.0.4261.1 (X64)
Sep 12 2022 15:07:06
Copyright (C) 2019 Microsoft Corporation
Enterprise Edition (64-bit) on Linux (CentOS Stream 8) <X64>
(1 rows affected)
1>
9.8 服务器安装好Mssql后,本地连接也成功后,就可以尝试使用其他客户端登录或者其他客户端上的具有GUI的软件登录。如果不成功,一般都是网络问题或者端口问题又或者是数据库服务问题造成,按照实际情况排查即可。
注意:Mcrosoft Sql Server的安装方式,调试方式相对与Oralce来说要简单的多。大家可以参考微软官网相关资料自行安装调试