需求:在政务网安装了MySQL数据库,漏洞扫描出来有几个高危漏洞,需要升级打补丁。
然后文档里面给了修复连接:https://www.oracle.com/security-alerts/cpujul2021.html
然后提示:Support Identifier
也就是说要想打补丁,就要购买Oracle的服务,才会有个这验证码。。。
于是不得已就只能手动升级了,目前打不了补丁。
在这里插入图片描述
在这里插入图片描述

Mysql的两种升级方式
就地升级(In-place Upgrade)
关闭旧版本mysql,用新的替换旧的二进制文件或软件包,在现有数据目录上重启数据库,执行mysql_upgrade
特点:不改变数据文件,升级速度快;但,不可以跨操作系统,不可以跨大版本(5.5—>5.7).
逻辑升级(Logical Upgrade)
使用备份或导出实用程序(如mysqldump,Xtrabackup)从旧mysql实例导出SQL ,安装新的mysql数据库版本,再将SQL应用于新的mysql实例。
特点:可以跨操作系统,跨大版本;但,升级速度慢,容易出现乱码等问题。

一、rpm安装文件安装的MySQL升级

1.1 下载

官网下载:
https://dev.mysql.com/downloads/mysql/5.7.html

这里下载的是二进制版本的包。
这里我们选择的升级方式是就地升级
在这里插入图片描述

下载之后需要上传到指定服务器。
这里我上传到/usr/local目录下面了。

2. 备份

升级之前一定要先备份!!!
以防升级失败。

1 备份数据

Navicat导出sql文件:
在这里插入图片描述
或者使用mysqldump进行备份

2 备份配置文件

cp /etc/my.cnf /home/

3. 登录MySQL并将执行慢速关闭

mysql -u root -p
select @@innodb_fast_shutdown;
SET GLOBAL innodb_fast_shutdown=0;

4. 停止服务

mysqladmin -u root -p shutdown

5. 解压二进制包,覆盖原路径

/usr/local/mysql就是安装的mysql路径

tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
cp -frp mysql-5.7.36-linux-glibc2.12-x86_64/* /usr/local/mysql

6. 启动服务

# 指定配置文件和数据目录启动MySQL
mysqld_safe --defaults-file=/etc/my.cnf --datadir=/home/data/data/ --user=mysql &

# 检查所有表是否与当前版本兼容,并更新系统库
mysql_upgrade -u root -p

# 停止服务
mysqladmin -u root -p shutdown

# 指定配置重启
mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &

到这里升级就完成了,快去看看版本信息吧。
PS:可以通过Navicat查看、或者登录之后查看。

在这里插入图片描述

二、yum升级MySQL5.7

这个就比较简单了。

1. 配置yum源码

# 1.下载yum源
wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'

# 2.安装yum源
rpm -Uvh mysql57-community-release-el7-11.noarch.rpm

# 3.查看mysql版本
rpm -qa|grep ^mysql-community

# 4. 停止mysql服务
systemctl stop mysqld 

# 5. 升级mysql client
yum update mysql

# 6. 升级mysql-server
yum update mysql-server

# 7.查看版本
mysql -V

# 8.检测更新是否正常(很重要,报错就说明更新失败!)
mysql_upgrade -u root -p

# 9.重启
systemctl restart mysqld

参考文档

mysql[漏洞打补丁]小版本升级5.7.25到5.7.28
MySQL 小版本升级操作步骤

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐