系列升级版本过程前言

在操作系统为centos的生产环境服务器需要进行等保2.0评测,使用绿盟科技的扫描软件扫描后检测出一大批漏洞,因此需要进行漏洞修复虽然报告中有一大堆的漏洞,但是细分下来分为mysql数据库方面

Mysql的漏洞可直接通过升级Mysql最新版本解决,以下通过模拟Mysql低版本5.7.28到高版本5.7.31的升级做演示

安装版本1.官网获取的包.2.上传到Centos7中的/opt路径3.编写一键安装脚本
_包位置【LookingforthelatestGAversion?】选择第一个500多MB的tar包echo"================================"echo"正在卸载Mysql"echo"======================================"rpm-e$(rpm-qa|grep-imysql)--nodepsrpm-e$(rpm-qa|grep-imaria)--nodepsrpm-e$(rpm-qa|grep-ipostfix)--nodepsecho"================================"echo"正在安装Mysql"echo"======================================"_64._64._64._64._64._64._64._64.rpm​echo"=========Mysql安装成功============================="systemctlstartmysqldsystemctlenablemysqldnetstat-anp|grep3306cat/var/log/|grep'temporarypassword'​echo"第一次登陆修改root密码的语句是:"echo"ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'1qe3!QE'withgrantoption;"'withgrantoption;echo"创建新用户"
4.执行脚本
_
5.登陆数据库并修改账号密码
mysql-uroot-p';'withgrantoption;不加的话使用本地的mysql命令登陆会报错7.修改数据库配置,与生产环境一致
datadir=/data_lvm/mysqlsocket=/var/lib/mysql/​szydneedtosetsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONcharacter-set-server=utf8mb4collation-server=utf8mb4_general_cilower_case_table_names=1WO-19sermax_connectionmax_connections=1000startbin-loginit-connect=(id,time,localname,matchname)values(connection_id(),now(),user(),current_user())log_bin=/data_lvm/mysqllog/mysql_binbinlog-format=Rowserver-id=1log-bin-trust-function-creators=1setslowslow_query_log=onslow_query_log_file=/var/lib/mysql/_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
8.同步数据备份Mysql

备份的目的是避免数据丢失,一定要备份好才接下来操作。

备份配置

逻辑备份

物理备份(数据卷,日志)

查看/etc/,然后进行备份/etc/和Mysql存储目录(生产环境任何操作一定要先备份,在操作)

1.备份配置文件
cp/etc//home/cgt/mysqlbak/
2.备份逻辑文件
业务库备份
3.停机后备份完整的数据文件
systemctlstopmsyqld数据卷归档
升级Mysql到5.7.311.获取最新版本

根据自己的操作系统和位数进行选择,这里是Centos764位。

2.上传tar包到centos7的/opt目录3.编写Mysql一键升级脚本

_

rpm包安装的服务使用rpm-Uvh升级_64._64._64._64._64._64._64.rpm重新启动Mysql并查询进程systemctlrestartmysqldnetstat-anp|grep3306
4.执行脚本,一键更新
_

5.升级Mysql系统表
mysql_upgrade-uroot-p-s参数是仅升级系统表的意思,避免数据库升级后无法打开一些系统表

6.登陆数据库验证
mysql-uroot-p

这个时候,完成Mysql的版本更新,漏洞也随之消失了。

7.开启应用并检查