Mysql数据库漏洞修复方法以及升级方法指南最详细全网独一份

Posted 技术很渣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql数据库漏洞修复方法以及升级方法指南最详细全网独一份相关的知识,希望对你有一定的参考价值。

一、问题痛点描述

日常运维实际工作中,经常碰到密评风险漏洞生产环境扫描出很多数据库漏洞,要求整改

mysql数据库整改方法就是升级版本,升更高版本就自动修复了上图的漏洞,能确保正常过风险评估。下文叙述了升级方法。
升级规范 5.7x升级5.7X 比如5.7.22升级5.7.36(5.7版本官方也一直在更新修复BUG)
8.0X升级至8.0X比如8.0.16升级至8.0.27
不要5.7升级8.0,因为2个版本有很大不同,数据迁移过程会遇到各种错误。

解决方法1:直接升级生产环境(有风险,不建议)
解决方法2(推荐):创建跟生产环境一致的测试环境,进行多次反复升级测试

前期准备
1、熟悉全量备份实例下数据库所有数据库的方法,并确保备份文件可以正常恢复
2、熟知mysql下的所有用户名以及密码,尤其是root密码(本机可用root登录)
3、判断清楚生产环境是那种版本,安装包版本,还是免安装版本
安装包版本与免安装包版本判断
通过服务下的地址判断

包含Program Files 目录为安装版

如下为免安装版

**一、MYSQL5.7以及8.0版本(Windows平台)

(一)安装包版本
安装包版本是指用官方整合好的EXE安装包安装的版本。
官方下载地址https://downloads.mysql.com/archives/installer/**

发布日期2021年11月,代表此版本可以修复2021年11月之前的扫出的漏洞。

步骤1:查看当前5.7的版本
select version();

**步骤2:下载最新5.7版本

https://downloads.mysql.com/archives/installer/  #官方下载地址

当前最新版本5.7.36**

步骤3执行覆盖安装



输入已知的ROOT密码



验证

Localhost 改成127.0.0.1

检查数据,用户与升级之前无异,升级成功!

步骤4重启服务器操作系统

升级完成之后,数据跟升级之前无异!

(二)免安装版本
通过服务的地址查看,如果是如下图目录为免安装版本
免安装版本官方不支持自动升级,只能先备份数据,然后卸载,然后重新安装新版本的安装包版本,之后重新迁移数据跟相关用户信息。整个迁移过程很麻烦,又存在风险,不建议操作,建议在另台新服务器上安装新版本MYSQL5.7安装包版本,然后迁移数据过去,保证2个环境都能运行,这样最稳妥。

步骤1 备份用户权限信息

步骤2 备份全量数据库(结构和数据)

步骤3 停用MSQL服务

步骤4 删除原低版本MYSQL服务
在cmd中,输入sc delete mysql,删除服务。

步骤5 安装高版本安装包版本



此处安装路径到容量比较大的磁盘,默认装C日后容易硬盘饱满!!

步骤6 恢复数据(Nacicat工具恢复)

步骤7 恢复用户权限数据

步骤8 验证数据是否完整

二、MYSQL5.7以及8.0版本(linux环境)

举例
操作系统 Mysql版本
Centos6.5 MYSQL8.0x向上小版本升级
1、官网下载最新版本安装包

https://dev.mysql.com/downloads/mysql/

注意操作系统cento版本
2、查看当前生产环境版本
此次的案例为8.023升级到8.025版本
show variables like ‘%version%’
3、解压
tar -xf mysql-8.0.25-1.el6.x86_64.rpm-bundle.tar
4、关闭当前MYSQL服务
Service mysqld stop
Ps –ef|grep mysql
在这里插入图片描述

5、强制安装新版本包

rpm -ivh mysql-community-common-8.0.25-1.el6.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.25-1.el6.x86_64.rpm --nodeps –force
rpm -ivh mysql-community-client-8.0.25-1.el6.x86_64.rpm --nodeps –force
rpm -ivh mysql-community-server-8.0.25-1.el6.x86_64.rpm --nodeps --force


6、启动服务
Service mysqld start
启动的时候查看日志

升级无缝成功
8.023升级到8.025成功

记一次mysql小版本升级

  最近护网操作比较紧,基线和漏洞检查比较频繁,新扫描出来的mysql漏洞需要修复,没有啥好的修复方法,只剩下升级版本这一条路,生产环境是5.7.12,二进制文件直接解压使用的,看了一下现在最新的版本,5.7.30,好像能解决所有的漏洞问题,直接就干了。

  mysql的小版本的升级,主要是有两种方式,一种是物理升级,也就是本地停库,替换二进制文件,然后重新启动数据库,执行在线upgrade操作,另一种是逻辑升级,将原有的数据库数据,dump导出为sql文件,然后在新安装的数据库中进行导入操作。

  考虑到本地环境,数据量比较大,单独硬盘存储,我选择了直接升级操作。

  主要操作如下:

  1.下载文件:

    直接访问mysql官方站点下载mysql二进制文件,网络条件受限,下载很慢,整个二进制包660M呢,根本下载不下来,还好国内有站点,选择清华、网易等镜像源,分分钟就将安装包下载下来了。

  2.上传文件,解压

    直接在指定目录下,解压,生成mysql-5.7.30-log目录

  3.停库

    由于数据库里面有主从服务,先关闭主库和从库的slave进程,然后关闭日志binlog同步服务,设置innodb的慢关闭,SET GLOBAL innodb_fast_shutdown=0;

  4.卸载umount,创建软连接

    数据库data目录是单独的挂载,等数据库完全关闭后,执行umount操作,然后将原有的mysql目录重命名(以前直接是做的重命名,没有软连接),将5.7.30目录做软连接,链接到mysql目录上。

  5.查看命令,启动数据库

    通过which查看mysql等命令的位置,是否能查到,如果查不到,看一下本地path,mount数据目录,然后启动数据库,看日志是否有异常

  6.执行upgrade操作

    mysql_upgrade直接执行,如果有general_log和slow_log可能会有报错,时间较长,但是无关紧要,毕竟不是真的数据

    升级完成之后,直接关闭数据库,然后重新启动,就完成升级了。

 

  总体来说,mysql的小版本升级,还是很简单的,我这个操作是比较冒险的,升级前没有做备份操作。

以上是关于Mysql数据库漏洞修复方法以及升级方法指南最详细全网独一份的主要内容,如果未能解决你的问题,请参考以下文章

Drupal 网站漏洞修复以及网站安全防护加固方法

详细讲解安全升级MySQL的方法

怎么修复网站漏洞 骑士cms的漏洞修复方案

Linux软件漏洞修复指南

苹果maccms网站漏洞进行修复解决方法教程

thinkphp漏洞如何修复