【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云防火墙,500元 1000GB
简介: SQLServer 虽然是微软开发的,但是目前已经支持 Windows、Linux、MACOS等。本文详细介绍在 Linux 环境下,如何对 SQL Server 进行安装、升级、回滚、卸载等操作。

@[toc]

前言

SQLServer 虽然是微软开发的,但是目前已经支持 Windows、Linux、MACOS等。本文详细介绍在 Linux 环境下,如何对 SQL Server 进行安装、升级、回滚、卸载等操作。

一、Linux 下安装 MSSQL

文章演示的是在 CentOS8 环境,所使用的 SQL Server 版本是:SQL Server 2019。

1.1 添加 Microsoft 的 yum 存储库

在命令行中输入以下命令以添加 Microsoft 的 yum 存储库:

[root@hecs-69777 ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   231  100   231    0     0    363      0 --:--:-- --:--:-- --:--:--   363

1.2 查看repo文件,确认repo文件信息

[root@hecs-69777 ~]# cat /etc/yum.repos.d/mssql-server.repo
[packages-microsoft-com-mssql-server-2019]
name=packages-microsoft-com-mssql-server-2019
baseurl=https://packages.microsoft.com/rhel/8/mssql-server-2019/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc[root@hecs-69777 ~]#

1.3 使用以下命令安装 mssql-server 包

[root@hecs-69777 ~]# sudo yum install -y mssql-server
packages-microsoft-com-mssql-server-2019                                                                                                                         1.2 MB/s | 5.5 MB     00:04
Last metadata expiration check: 0:00:04 ago on Tue 28 Mar 2023 05:59:50 PM CST.
Dependencies resolved.
...
pilot process
...
+--------------------------------------------------------------+
Please run 'sudo /opt/mssql/bin/mssql-conf setup'
to complete the setup of Microsoft SQL Server
+--------------------------------------------------------------+
...
pilot process
...
Complete!

1.5 执行 SQL Server 初始化操作

sudo /opt/mssql/bin/mssql-conf setup

1.6 选择所要安装的 SQL Server 版本

此步骤的安装版本不是MSSQL的版本号,而是如下图所示的,在所 1 ~ 8 选项中的某一个版本,其中包括license信息以及企业版本等相关的版本,本文为了演示选择安装的是免费的开发版本(无试用期限限制)。

在这里插入图片描述

1.7 设置 sa 账号密码

在选择完所要安装的MSSQL版本后,会出现确实是否接受试用协议,直接输入 y,表示接受相关协议,接下来在下一步输入sa账号密码,密码长度不能低于8个字符。

在这里插入图片描述

1.8 确认安装状态

进行完上述安装后,我们确认两点

  • 确认 SQL Server 的使用端口号:1433
  • 确认 SQL Server 服务状态

1.8.1 查看 SQL Server 监听端口

如果成功完成安装 SQL Server,在端口列表中,可以看到 1433 的端口号。

[root@hecs-69777 ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:1433            0.0.0.0:*               LISTEN      72597/sqlservr
tcp        0      0 127.0.0.1:1434          0.0.0.0:*               LISTEN      72597/sqlservr
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1627/sshd
tcp        0      0 127.0.0.1:1431          0.0.0.0:*               LISTEN      72597/sqlservr
tcp6       0      0 :::1433                 :::*                    LISTEN      72597/sqlservr
tcp6       0      0 ::1:1434                :::*                    LISTEN      72597/sqlservr
tcp6       0      0 :::22                   :::*                    LISTEN      1627/sshd
tcp6       0      0 ::1:1431                :::*                    LISTEN      72597/sqlservr

在这里插入图片描述

1.8.2 查看 SQL Server 服务状态

SQL Server 安装成功后,其服务状态为:active(running)状态。


[root@hecs-69777 ~]# 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 Tue 2023-03-28 18:12:45 CST; 4h 32min ago
     Docs: https://docs.microsoft.com/en-us/sql/linux
 Main PID: 72573 (sqlservr)
    Tasks: 159
   Memory: 774.0M
   CGroup: /system.slice/mssql-server.service
           ├─72573 /opt/mssql/bin/sqlservr
           └─72597 /opt/mssql/bin/sqlservr

Mar 28 18:18:02 hecs-69777 sqlservr[72573]: [195B blob data]

在这里插入图片描述

二、安装 SQL Server 客户端工具

如果在某一个 Linux 机器中,需要远程连接 SQL Server,需要安装客户端之后才可以进行连接,具体的操作步骤如下 。

2.1 下载客户端工具 yum 源文件

添加 Microsoft 的 SQL Server 客户端工具存储库。在终端中输入以下命令:

[root@hecs-69777 ~]# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   192  100   192    0     0    343      0 --:--:-- --:--:-- --:--:--   342

2.2 安装 SQL Server 客户端工具

[root@hecs-69777 ~]# sudo yum install -y mssql-tools unixODBC-devel
packages-microsoft-com-prod                                                                                                                                      671 kB/s | 6.0 MB     00:09
Last metadata expiration check: 0:00:09 ago on Tue 28 Mar 2023 11:40:11 PM CST.
Dependencies resolved.
...
pilot process
...
Do you accept the license terms? (Enter YES or NO)
yes
...
pilot process
...
Do you accept the license terms? (Enter YES or NO)
yes

Complete!

2.3 配置环境变量

为了我们可以在任意路径下可以执行 sqlcmd 命令进行本地连接,我们需要配置相关的环境变量。

客户端工具默认安装路径:/opt/mssql-tools/bin/

在终端中输入以下命令:

[root@hecs-69777 ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
[root@hecs-69777 ~]# source ~/.bashrc
[root@hecs-69777 ~]# which sqlcmd
/opt/mssql-tools/bin/sqlcmd

三、连接测试

3.1 本地连接 SQL Server

本地登录使用参数 -S 指定 ip 地址,-U 指定用户,-P指定输入密码,不带-P则会进入输入密码交互模式。
登录成功显示1>,如果需要退出则可以使用quit:exit,此模式下除了go命令直接输入,其他命令则需要使用冒号开头,例如输入:help获取帮助。

[root@hecs-69777 ~]# sqlcmd -S 127.0.0.1 -U sa
Password:
1>
  • 查看数据库版本

本地连接状态下输入select @@version和go可以查看到版本信息。

[root@hecs-69777 ~]# sqlcmd -S 127.0.0.1 -U sa
Password:
1>
2>
3> select @@version
4> go

在这里插入图片描述

3.2 远程连接 SQL Server

3.2.1 开启远程连接权限

3.2.1.1 设置 SQL Server 远程链接权限

使用 sa 账号登陆进入 MSSQL,进入后执行如下语句,开启远程连接访问权限。

1> EXEC sp_configure 'remote access', 0;
2> GO
Configuration option 'remote access' changed from 1 to 0. Run the RECONFIGURE statement to install.
1> RECONFIGURE;
2> GO
3.2.1.2 设置防火墙白名单(如果有开启防火墙)

如果你的机器里有开启防火墙配置的话,那么需要添加 1433 端口在防火墙白名单内,具体执行如下命令:

[root@hecs-69777 ~]# sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
success
[root@hecs-69777 ~]# sudo firewall-cmd --reload
success
3.2.1.3 设置云服务器安全组规则(如果有)
注意:如果SQL Server 安装在某些云服务器中,注意设置其安全组的入出站规则,如果没有在安全组中设置1433的白名单,那么就会出现连接 SQL Server 失败的错误。

例如修改华为云的 HECS 安全组规则(如果有设置):

在这里插入图片描述

3.2.2 新建 SQL Server 连接

本文为了演示使用的是 Navicat 进行连接演示,根据个人习惯可以自行选择连接工具。
在数据库连接窗口中输入数据库 ip 地址,账户密码,管理员默认账户名sa。

在这里插入图片描述

连接成功后,即可执行SQL语句。
在这里插入图片描述

五、其他操作

本部分非必要可以跳过,如果有一天有需要可以考虑来翻出来本文

5.1 完全卸载 SQL Server

5.1.1 停止 SQL Server 服务

sudo systemctl stop mssql-server

5.1.2 卸载 SQL Server 包

为了卸载 Linux 上运行的 mssql-server 包,使用如下命令:

sudo yum remove mssql-server

5.1.3 删除 SQL Server 数据文件

SQL Server 默认的数据文件存储在 /var/opt/mssql 目录下。可以使用以下命令来删除这些文件:

sudo rm -rf /var/opt/mssql

5.1.5 删除 SQL Server 配置文件

SQL Server 的配置文件位于 /etc/opt/mssql 目录下。可以使用以下命令来删除这些文件:

sudo rm -rf /etc/opt/mssql

5.1.6 删除 SQL Server 日志文件

SQL Server 的日志文件位于 /var/log/mssql 目录下。可以使用以下命令来删除这些文件:

sudo rm -rf /var/log/mssql

5.2 升级 mssql-server 包到最新版本

进行 SQL Server 升级操作的时候,可以直接使用如下命令:

sudo yum update mssql-server
该命令会下载并安装最新包,并替换 /opt/mssql/ 下的二进制文件。用户生成的数据库和系统数据库不会受该操作的影响。

5.3 回滚 SQL Server 到之前的某个版本

5.3.1 识别降版的版本号

识别你想降级到的 SQL Server 版本号。对应的版本号列表:点击这里(官方版本号)

5.3.2 执行降版操作

执行如下命令进行降级到之前的某一个SQL Server版本。将<version_number>替换为上一步骤中的版本号。

sudo yum downgrade mssql-server-<version_number>.x86_64
注意:这个操作只支持降级到相同主版本内的某一个小版本,如某个大(主)版本号为:SQL Server 2017、SQL Server 2019、SQL Server 2022。

最后总结

用一个问答来总结该篇文章

为什么我要选择 SQL Server 数据库,而不是 Oracle,或者 MySQL?

完整回答请阅读以下文章:
https://www.sqlservercentral.com/forums/topic/why-should-i-go-for-ms-sql-server-not-for-oracle-and-mysql

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
23天前
|
Linux 测试技术 网络安全
Linux系统之安装OneNav个人书签管理器
【10月更文挑战第19天】Linux系统之安装OneNav个人书签管理器
41 5
Linux系统之安装OneNav个人书签管理器
|
21天前
|
运维 监控 网络协议
|
25天前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
49 5
Linux系统之安装Ward服务器监控工具
|
7天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
20 5
|
7天前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
24 3
|
27天前
|
JSON JavaScript Linux
Linux系统之安装cook菜谱工具
【10月更文挑战第15天】Linux系统之安装cook菜谱工具
34 2
Linux系统之安装cook菜谱工具
|
19天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
46 2
|
20天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
29 3
|
3天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
27 0
|
9天前
|
关系型数据库 MySQL Linux
Linux-安装Mariadb
本文介绍了在 Alibaba Cloud Linux 系统上安装和配置 MariaDB 10.5 的步骤。包括下载安装、初始化数据库、启动服务、处理启动失败的常见问题(如权限问题),以及如何连接数据库、设置密码和允许外部连接。通过这些步骤,您可以顺利完成 MariaDB 的安装和基本配置。
21 0