MySQL8漏洞处理之小版本升级至8.0.33

news2024/11/24 19:41:04

MySQL低版本经常会出现一些漏洞,有些高危漏洞就得处理,以防未知风险。

一、漏洞描述

MySQL 安全漏洞(CVE-2023-21912)(CVE-2023-21980):
Oracle MySQL 5.7.41 版本及之前版本和 8.0.32 版本及之前版本的 Client programs 组件存在安全漏洞。低权限攻击者利用该漏洞可以通过多种协议访问网络来破坏 MySQL 服务器。
目前厂商已发布升级补丁以修复漏洞,补丁获取链接: https://www.oracle.com/security-alerts/cpuapr2023.html

二、备份MySQL数据

1、为了防止升级过程中出现意外,需要备份数据。根据数据大小,可以选择sql导出,或者dump方式导出。
2、备份my.cnf配置文件

三、漏洞处理方式

通过升级最新版本的方式解决漏洞即可

3.1 下载MySQL

2023年6月16日15:26:54 当前最新版本的MySQL为8.0.33
可以根据服务器的硬件以及系统的不同,在这里https://dev.mysql.com/downloads/mysql/8.0.html查看和下载对应的MySQL版本。
注意:1、选择对应的linux版本,centos7要选择linux7版本哦。不然会有未知错误。比如我是cento7 x86_64架构则下载mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar

在这里插入图片描述
下载mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar并将其拷贝到服务器上

3.2 查看当前的MySQL版本

可以执行show variables like '%version%'命令,查看当前mysql版本。如下:
在这里插入图片描述

3.3 解压上传服务器的mysql-8.0.33包

tar -xvf  mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar

3.4 关闭正在运行的MySQL服务

先查看运行情况:Active: active (running)

[root@host ~]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2022-08-09 14:52:41 CST; 10 months 6 days ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 2330 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 2354 (mysqld)
   Status: "Server is operational"
   CGroup: /system.slice/mysqld.service
           └─2354 /usr/sbin/mysqld

8月 09 14:48:45 host systemd[1]: Starting MySQL Server...
8月 09 14:52:41 host systemd[1]: Started MySQL Server.

关闭mysqld

systemctl stop mysqld

再次查看运行情况,确认关闭情况 Active: inactive (dead)

 [root@host mysql8.0.33]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since 一 2023-06-19 10:16:56 CST; 4s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 2354 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 2330 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 2354 (code=exited, status=0/SUCCESS)
   Status: "Server shutdown complete"

8月 09 14:48:45 host systemd[1]: Starting MySQL Server...
8月 09 14:52:41 host systemd[1]: Started MySQL Server.
619 10:16:53 host systemd[1]: Stopping MySQL Server...
619 10:16:56 host systemd[1]: Stopped MySQL Server.

3.5 强制安装新版本包

rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm --nodeps --force

3.5.1 安装报错1

[root@host mysql8.0.33]# rpm -ivh mysql-community-common-8.0.33-1.el9.x86_64.rpm --nodeps --force
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-common-8.0.33-1.e################################# [100%]
错误:解压压缩文件  失败:cpio: Bad magic
错误:mysql-community-common-8.0.33-1.el9.x86_64: 安裝 已失败

3.5.2 安装报错2

[root@host mysql8.0.33]# rpm -ivh mysql-community-common-8.0.33-1.el9.x86_64.rpm --nodeps
准备中...                          ################################# [100%]
        file /usr/share/mysql-8.0/bulgarian/errmsg.sys from install of mysql-community-common-8.0.33-1.el9.x86_64 conflicts with file from package mysql-community-common-8.0.30-1.el7.x86_64
        file /usr/share/mysql-8.0/czech/errmsg.sys from install of mysql-community-common-8.0.33-1.el9.x86_64 conflicts with file from package mysql-community-common-8.0.30-1.el7.x86_64
        file /usr/share/mysql-8.0/danish/errmsg.sys from install of mysql-community-common-8.0.33-1.el9.x86_64 conflicts with file from package mysql-community-common-8.0.30-1.el7.x86_64
        ……
        ……
        ……

3.5.3 安装报错原因与解决

上面的2个错误都是因为我是centos7,结果下载了centos9版本的包导致。应该选择el7才对而不是选择el9,我这边没注意,默认下载了el9的版本。如下:
在这里插入图片描述
选择下载新的el7版本的包再次安装,是OK的,如下:

[root@host mysql8.0.33]# rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm --nodeps --force
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-common-8.0.33-1.e################################# [100%]
[root@host mysql8.0.33]# rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm --nodeps --force
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-libs-8.0.33-1.el7################################# [100%]
[root@host mysql8.0.33]# rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm --nodeps --force
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-client-8.0.33-1.e################################# [100%]
[root@host mysql8.0.33]# rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm --nodeps --force
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-server-8.0.33-1.e################################# [100%]
[root@host mysql8.0.33]# 

成功截图:
在这里插入图片描述

3.7 查看已经安装的MySQL

rpm -qa |grep mysql

[root@host- ~]# rpm -qa |grep mysql
mysql-community-client-plugins-8.0.29-1.el7.x86_64
mysql-community-common-8.0.30-1.el7.x86_64
mysql-community-common-8.0.33-1.el7.x86_64
mysql-community-icu-data-files-8.0.29-1.el7.x86_64
mysql-community-libs-compat-8.0.29-1.el7.x86_64
mysql-community-libs-8.0.30-1.el7.x86_64
mysql-community-server-8.0.30-1.el7.x86_64
mysql-community-libs-8.0.33-1.el7.x86_64
mysql-community-server-8.0.33-1.el7.x86_64
mysql-community-devel-8.0.29-1.el7.x86_64
mysql-community-client-8.0.30-1.el7.x86_64
mysql-community-client-8.0.33-1.el7.x86_64

将过期的包,也就是上个版本的包移除(貌似不移除也没出现什么问题)
注意:只移除本次安装的4个对应的之前的包哈
以common举例如下:

rpm -e mysql-community-common-8.0.30-1.el7.x86_64

3.7 启动MySQL服务

systemctl start mysqld

查看日志:

# 默认在这里:
tail -f /var/log/mysqld.log
# 如果在my.cnf里指定了,则在对应位置查看即可

如下图,可以看到版本号8.0.33已经启动无ERROR
在这里插入图片描述
注意:8.0.33的my.cnf加上如下参数,启动不起来,具体还没研究。
在这里插入图片描述

3.8 再次查看升级后的MySQL版本

可以执行show variables like '%version%'命令,查看升级后的mysql版本。如下,发现已经升级到8.0.33,平滑升级成功。
在这里插入图片描述

3.9 通过程序,或者一些标志位查看数据情况是否无误

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666458.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Channel的一些业务场景

使用Channel的一些业务场景 首先需要明确的就是,发送方才知道什么时候关闭 channel ,这个是比较符合逻辑的。 我们需要知道哪些情况会使 channel 发生 panic 关闭一个 nil 值会引发关闭一个已经关闭的 channel 会引发向一个已经关闭的 channel 发送数据…

职场人的AI私塾,帮你打造得力的AI助手

你有没有想过,为什么有一些周围的小伙伴,工作量看着也不少,但事务处理速度特别快,质量也不差;一些看起来难度比较大或者生疏的工作,也能轻松应付得来,难道他们都是天生的工作能力出众&#xff1…

小白速看!带你轻松解决Java的空指针异常

关注“Java架构栈”微信公众号,回复暗号【Java面试题】即可获取大厂面试题 异常案例 对很多Java初学者来说,在学习的初期是很容易遇到各种异常的,就比如咱们今天要讲的这个空指针异常。所谓“授之以鱼,不如授之以渔”,…

Q-Vision+Kvaser CAN/CAN FD/LIN总线解决方案

智能联网技术在国内的发展势头迅猛,随着汽车智能化、网联化发展大潮的到来,智能网联汽车逐步成为汽车发展的主要趋势。越来越多整车厂诉求,希望可以提供本土的测量软件,特别是关于ADAS测试。对此,Softing中国推出的Q-V…

CppUnit——【由JUnit移植过来的】C++单元测试框架——的下载安装

C单元测试框架CppUnit的下载与安装 简介下载地址导入到Virtual Studio准备条件根据VS版本选择导入对应的.sln文件 简介 CppUnit是【由JUnit移植过来的】C测试框架。 下载地址 从我使用的CppUtest框架中的文档/readme/ReadmePart1_VisualStudio.rtf文件中看到了官网的地址cpp…

前端性能优化:高在性能,大在范围,必要前置知识一网打尽!(下)

前言 在上一篇 前端性能优化:高在性能,大在范围,必要前置知识一网打尽!(上) 一文中介绍了和前端性能优化相关的一些前置知识,那么本篇就针对优化方案进行总结,核心的方向还是上篇文…

C++基础(6)——类和对象(4)

前言 本文主要介绍了C中运算符重载的基本知识。 4.5.1:加号运算符重载(成员函数和全局函数都可实现) 运算符重载:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型 1:成员…

管理类联考——写作——素材篇——论说文——写作素材03——志篇:逆境·考验04——志篇:初心

管理类专业学位联考 (写作能力) 论说文素材 03——志篇:逆境考验 论文说材料: 逆境是天才的进身之阶;信徒的洗礼之水;能人的无价之宝; 弱者的无底之渊。 ——巴尔扎克 一:道理论据 不是一番寒彻骨,怎得…

【Azure】微软 Azure 基础解析(九)Azure 标识、身份管理、Azure AD 的功能与用途

本系列博文还在更新中,收录在专栏:「Azure探秘:构建云计算世界」 专栏中。 本系列文章列表如下: 【Azure】微软 Azure 基础解析(三)云计算运营中的 CapEx 与 OpEx,如何区分 CapEx 与 OpEx 【A…

测量设备频宽范围选择要素—系统响应速度

系统响应速度是输入信号经过电压/电流驱动系统输出响应的幅值升到终值过程的斜率,而上升时间是系统响应速度的一种度量,上升时间越短,响应速度越快。 由一阶系统响应定义中,稳定的一阶系统上升时间 定义是响应从终值10%上升到终值…

git常用命令合集(建议收藏)

1、git init将本文件夹初始化成一个本地git仓库 2、git clone'xxx'将github上的远程克隆到本地 3、git add [file1] [file2] 添加文件到暂存区,包括修改的文件、新增的文件 4、git add [dir] 添加目录到暂存区,包括子目录 5、…

java 类之间相互引用实例探索

本文记录一下自己对类之间相互引用的探索,如有错误,希望不吝赐教 问题一:类之间相互引用依赖会不会引用死循环 不会,例如:A类中声明一个B类的引用,B类中也声明一个A类的引用,因为类之间的引用相…

TCP为什么要三次握手与四次分手?

概要 TCP协议是五层协议中运输层的协议,下面依赖网络层、链路层、物理层,对于一个报文想发到另一台机器(假设是服务器)上对等层,每一个所依赖的层都会对报文进行包装,例如TCP协议就依赖网络层的IP协议,所以发送的报文会…

【数据库数据恢复】SQL Server数据表结构损坏的数据恢复案例

数据库故障&分析: SQL server数据库数据无法读取。 经过初检,发现SQL server数据库文件无法被读取的原因是因为底层File Record被截断为0,无法找到文件开头,数据表结构损坏。镜像文件的前面几十M空间和中间一部分空间被覆盖掉…

大专毕业,干了 3 年外包,废了····

如果不是女朋友和我提分手,我估计到现在还是外包公司呆着 大专生,19年通过校招进入湖南某软件公司,干了接近3年的点点点(功能测试),今年年初,感觉自己不能够在这样下去了,长时间呆在…

VSCode借助Remote-SSH扩展,远程调试linux系统的机器人

本文主要介绍使用VSCode借助Remote-SSH扩展,远程调试linux系统的机器人的方法 在我之前的文章: ROS主机搭建NFS服务器,虚拟机通过挂载访问及修改主机文件 中介绍了采用挂载到的方式进行远程调试的方法,本文将介绍另一种方法&#…

汽车三高试验离不开的远程试验管理平台——TFM

一 背景 众所周知,车辆在量产之前都要经过长时间的耐久性试验和多种汽车适应性或法规试验。道路试验就是在汽车上装设测试仪表和施加模拟载荷,并按实际使用条件来进行测试。此外,在实际试验场地和试验时间上也是有一定规定的。企业根据不同的…

导出符号表和字符设备驱动

目录 1. 导出符号表 1.1. 应用场景:驱动B想要使用驱动A的函数 1.2. 函数解析 1.3. 撰写提供者.c文件 1.4. 撰写提供者makefile文件 1.5. 执行makefile文件生成Module.symvers 1.6. 撰写调用者.c文件 1.7. 撰写调用者的makefile 1.8. 调用验证 2. 字符设备…

springCloud对接kafka+websockt消息中心

1.网关没有配置message和websockt的路由 2.message启动报错,线上zookeeper启动失败导致 3.message配置文件参数读取不到,原因:message_dev.yml 正确名称 message-dev.yml 4.线上websockt地址连接失败,原因:白名单没…

Cisco MPLS VPN Option C2

无RR 一、拓扑 环境:AR1-AR8各有loopback0接口分别是1.1.1.1 2.2.2.2 二、配置步骤 1、配置AS100和AS200的底层网络,这里使用OSPF配置 2、配置AS内使用LDP协议分发标签 3、ASBR之间建立EBGP邻居关系,相对端通告路由时携带标签,互联…