Linux系统安装SQL Server2019

Linux系统安装SQL Server2019

𝓓𝓸𝓷 Lv6

Linux安装SQL Server2019数据库
https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-red-hat?view=sql-server-ver15

一、系统要求

SQL Server 对 Linux 具有以下系统要求:

要求
内存 2 GB
文件系统 XFS 或 EXT4(其他文件系统均不受支持,如 BTRFS) 。
磁盘空间 6 GB
处理器速度 2 GHz
处理器核心数 2 个核心
处理器类型 仅兼容 x64

如果在生产中使用网络文件系统 (NFS) 远程共享,请注意以下支持要求:

  • 使用 NFS 版本 4.2 或更高版本。 较早版本的 NFS 不支持现代文件系统常用的必需功能,例如 fallocate 和稀疏文件创建。
  • 仅在 NFS 装载上查找 /var/opt/mssql 目录。 不支持其他文件,例如 SQL Server 系统二进制文件。
  • 安装远程共享时,请确保 NFS 客户端使用“nolock”选项。
二、卸载已存在的mssql
1
2
3
4
[root@server01 ~]# rpm -qa |grep mssql
mssql-server-14.0.3436.1-1.x86_64

[root@server01 ~]# rpm -e mssql-server-14.0.3436.1-1.x86_64
三、删除旧的存储库
1
2
[root@server01 ~]# ls -l /etc/yum.repos.d
[root@server01 ~]# rm -rf /etc/yum.repos.d/mssql-server.repo
四、配置新的存储库

安装或升级 SQL Server 时,从配置的 Microsoft 存储库中获取最新版本的 SQL Server。

在 Linux 上安装 SQL Server 时,须配置 Microsoft 存储库。 此存储库用于获取数据库引擎包、mssql-server 以及相关 SQL Server 包 。 现有五个主要存储库:

存储库 名称 说明
2019 mssql-server-2019 SQL Server 2019 累积更新 (CU) 存储库。
2019 GDR mssql-server-2019-gdr SQL Server 2019 GDR 存储库仅用于关键更新。
2019 预览版 mssql-server-preview SQL Server 2019 预览版和 RC 存储库。
2017 mssql-server-2017 SQL Server 2017 累积更新 (CU) 存储库。
2017 GDR mssql-server-2017-gdr SQL Server 2017 GDR 存储库仅用于关键更新。

务必注意,每个分发都有两种主要的存储库类型:

  • 累积更新 (CU) :累积更新 (CU) 存储库包含基础 SQL Server 版本包,以及自该版本以来的所有 bug 修复程序或改进。 累积更新特定于发布的版本,例如 SQL Server 2019。 它们会定期发布。
  • GDR:GDR 存储库包含基础 SQL Server 版本包,并且仅包含自该版本以来的关键修复程序和安全更新。 这些更新也会添加到下一个 CU 版本中。

每个 CU 和 GDR 版本都包含完整的 SQL Server 包以及该存储库此前的所有更新。 通过更改为 SQL Server 配置的存储库,可支持从 GDR 版本更新到 CU 版本。 也可以降级 到主要版本中的任何版本(例如:2017)。

备注:

自 SQL Server 2017 CU20 起,开始支持 RHEL 8。 GDR 版本不支持 RHEL 8。可以随时通过更改存储库从 GDR 版本更新到 CU 版本。 不支持从 CU 版本更新到 GDR 版本。

存储库 版本 Command
2019 CU 2019 sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
2019 GDR 2019 sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019-gdr.repo
2017 CU 2017 sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2017.repo
2017 GDR 2017 sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017-gdr.repo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
配置新的存储库:

[root@server01 ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo

注意: 因为当前系统版本是Centos7.0,存储库路径/rhel/8,需要修改为/rhel/7

[root@server01 ~]# more /etc/yum.repos.d/mssql-server.repo
[packages-microsoft-com-mssql-server-2017]
name=packages-microsoft-com-mssql-server-2017
baseurl=https://packages.microsoft.com/rhel/7/mssql-server-2017/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

[root@server01 ~]# yum clean all
五、安装SQL Server
1
[root@server01 ~]# yum install -y mssql-server
六、设置SQL Server

运行 mssql-conf setup,按提示设置 SA 密码并选择版本,SA 帐户需指定强密码(最少 8 个字符,包括大写和小写字母、十进制数字或/非字母数字符号)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
[root@server01 ~]# /opt/mssql/bin/mssql-conf setup


/opt/mssql/bin/sqlservr: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by /opt/mssql/bin/sqlservr)
/opt/mssql/bin/sqlservr: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /opt/mssql/bin/../lib/libc++abi.so.1)
Initial setup of Microsoft SQL Server failed. Please consult the ERRORLOG


根本原因是版本不对:
[root@server01 ~]# more /etc/yum.repos.d/mssql-server.repo
[packages-microsoft-com-mssql-server-2017]
name=packages-microsoft-com-mssql-server-2017
baseurl=https://packages.microsoft.com/rhel/7/mssql-server-2017/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

注意: 因为当前系统版本是Centos7.0,存储库路径/rhel/8,需要修改为/rhel/7

[root@server01 ~]# /opt/mssql/bin/mssql-conf setup
Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID)
7) Enterprise Core (PAID)
8) I bought a license through a retail sales channel and have a product key to enter.

Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409

Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.

Enter your edition(1-8): 2
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x409

The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409

Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring 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.
Setup has completed successfully. SQL Server is now starting.
七、验证mssql服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[root@server01 ~]# 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 Thu 2022-05-05 11:50:01 CST; 23min ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 59251 (sqlservr)
CGroup: /system.slice/mssql-server.service
├─59251 /opt/mssql/bin/sqlservr
└─59291 /opt/mssql/bin/sqlservr

May 05 11:50:06 server01 sqlservr[59251]: 2022-05-05 11:50:...
May 05 11:50:06 server01 sqlservr[59251]: 2022-05-05 11:50:...
May 05 11:50:06 server01 sqlservr[59251]: 2022-05-05 11:50:...
May 05 11:50:07 server01 sqlservr[59251]: 2022-05-05 11:50:...
May 05 11:50:07 server01 sqlservr[59251]: 2022-05-05 11:50:...
May 05 11:50:07 server01 sqlservr[59251]: 2022-05-05 11:50:...
May 05 11:50:07 server01 sqlservr[59251]: 2022-05-05 11:50:...
May 05 11:50:07 server01 sqlservr[59251]: 2022-05-05 11:50:...
May 05 11:55:13 server01 sqlservr[59251]: 2022-05-05 11:55:...
May 05 11:55:14 server01 sqlservr[59251]: 2022-05-05 11:55:...

[root@server01 ~]# ps -ef |grep mssql
mssql 59251 1 0 11:50 ? 00:00:00 /opt/mssql/bin/sqlservr
mssql 59291 59251 3 11:50 ? 00:00:49 /opt/mssql/bin/sqlservr
root 59963 10134 0 12:14 pts/1 00:00:00 grep --color=auto mssql
[root@server01 ~]#
[root@server01 ~]# lsof -i:1433
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sqlservr 59291 mssql 34u IPv4 112626 0t0 TCP localhost:54590->localhost:ms-sql-s (ESTABLISHED)
sqlservr 59291 mssql 35u IPv4 112627 0t0 TCP localhost:ms-sql-s->localhost:54590 (ESTABLISHED)
sqlservr 59291 mssql 64u IPv4 110589 0t0 TCP *:ms-sql-s (LISTEN)
sqlservr 59291 mssql 70u IPv6 110587 0t0 TCP *:ms-sql-s (LISTEN)
八、关闭防火墙
1
2
3
4
5
6
7
[root@server01 ~]# systemctl status firewalld.service
[root@server01 ~]# systemctl stop firewalld.service
[root@server01 ~]# systemctl disable firewalld.service

或者开放SQL Server端口:
[root@server01 ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent
[root@server01 ~]# firewall-cmd --reload
九、安装SQL Server命令行工具
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(1)下载存储库
[root@server01 ~]# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo

(2)如果安装了早期版本的 mssql-tools,请删除所有旧的 unixODBC 包。
[root@server01 ~]# yum remove unixODBC-utf16 unixODBC-utf16-devel

(3)使用 unixODBC 开发人员包安装 mssql-tools
[root@server01 ~]# yum install -y mssql-tools unixODBC-devel

(4)添加PATH环境变量
[root@server01 ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> /etc/profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

[root@server01 ~]# source /etc/profile
十、本地连接SQL Server

sqlcmd连接本地SQL Server数据库,输入命令后,必须输入go,命令才能执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@server01 ~]# sqlcmd -S 127.0.0.1 -U sa -P 123456
[root@server01 ~]# sqlcmd -s localhost -U SA -p
Password:
1> select name from sys.databases
2> go

name
--------------------------------------------------------------------------------------------------------------------------------
master
tempdb
model
msdb
testdb

(5 rows affected)

4> select name from sysdatabases
5> go
name
--------------------------------------------------------------------------------------------------------------------------------
master
tempdb
model
msdb
testdb

(5 rows affected)

7> use testdb
8> go
Changed database context to 'testdb'.
十一、sqlcmd命令
1
2
3
4
5
6
7
8
9
10
11
12
(1)查看数据库列表
select name from sys.databases
select name from sysdatabases

(2)查看当前数据库表
select name from sysobjects where xtype='u'

(2)查看数据库下面所有的表
select TABLE_NAME FROM INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE'

(3)查看表的数据
select top 10 * from HXXXile
  • Title: Linux系统安装SQL Server2019
  • Author: 𝓓𝓸𝓷
  • Created at : 2024-07-17 11:10:18
  • Updated at : 2024-07-20 09:43:33
  • Link: https://www.zhangdong.me/install-sqlserver-on-linux.html
  • License: This work is licensed under CC BY-NC-SA 4.0.
评论