MySQL小版本升级详细步骤

一.背景

最近公司通过绿盟扫描了系统的生产环境,发现了MySQL的多个安全漏洞,领导让我去处理这个问题。经过调研之后,总结了两种解决方案,一是去Oracle官网下载漏洞补丁,但是这种方式需要提供购买过Oracle产品的账号才能去下载,而公司这边暂时无法提供账号,所以选择另一种方案:进行数据库升级。

 二.注意事项

1.因为公司服务器使用的是二进制安装MySQL,所以这里只介绍这种方式,如果是用rpm方式安装的MySQL,建议使用 rpm -Uvh 的方式进行升级,这里不详细介绍这种方式;


2.此文档只适用于MySQL小版本的升级(如从8.0.x到8.0.y),不适用于跨版本升级(如从5.6.x到8.0.y),不支持从 MySQL 8.0 降级到 MySQL 5.7,或从 MySQL 8.0 版本降级到之前的 MySQL 8.0 版本。唯一支持的替代方法是恢复升级前所做的备份。


3.由于公司的MySQL版本是8.4.0,在选择要升级的版本时,从MySQL官网可以看到,截止2025年1月23日,可选择的小版本有8.4.2和8.4.3,而8.4.2的版本在官方发布的漏洞报告里还有许多漏洞,所以这里选择升级到8.4.3,可根据自己的实际情况选择。

                                                        版本

                                                        官方漏洞报告

 官方升级文档MySQL :: MySQL 8.4 Reference Manual :: 3 Upgrading MySQL

三.详细步骤:

0.开始之前运行下面这条命令

mysqlcheck -u root -p --all-databases --check-upgrade

如果检查出任何错误需要改正之后再进行升级步骤

1、备份数据:在进行MySQL数据库升级之前,强烈建议备份数据库,以防升级过程中数据丢失。可以使用mysqldump、mydumper或xtraback等备份工具进行数据备份。

这里使用mysqldump:

mysqldump -u root -p --all-databases --single-transaction --quick --lock-tables=false > full-backup.sql

2.查看MySQL版本

select version();

mysql --version

3.查看glibc版本

rpm -qa | grep glibc

4.到MySQL官网下载目标版本

地址:MySQL :: Download MySQL Community Server

注意对应服务器glibc版本

选择第一个进行下载

5.将下载的二进制包上传到服务器:

6.配置MySQL服务器,通过执行以下语句将其配置为执行慢速关机:

mysql> select @@innodb_fast_shutdown;
+------------------------+
| @@innodb_fast_shutdown |
+------------------------+
|                      1 |
+------------------------+
1 row in set (0.01 sec)

mysql> SET GLOBAL innodb_fast_shutdown=0;
Query OK, 0 rows affected (0.01 sec)

7.停止 MySQL 服务:

mysqladmin -u root -p shutdown

8.解压下载的二进制安装包,并覆盖原来的安装路径(根据自己实际的安装路径修改):

tar -pxvf mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz

cp -frp mysql-8.4.3-linux-glibc2.28-x86_64/* /usr/local/mysql

9.使用现有的目录启动 MySQL 8.4服务:

mysqld_safe --user=mysql --datadir=/path/to/existing-datadir &

10.登录MySQL查看版本是否升级完成,并检查数据是否完整

至此,MySQL8.4.3升级完成!

总结:

        这种升级方式官方称为就地升级,包括关闭旧的MySQL服务器,用新的二进制文件或包替换旧的MySQL二进制文件或软件包,在现有数据目录上重新启动MySQL,以及升级现有安装中需要升级的任何剩余部分。 升级之前一定做好备份,以防数据丢失!!

MySQL 版本升级分为以下几个步骤: 1.备份数据:在升级前,一定要备份 MySQL 数据库的所有数据,以防止意外情况导致数据丢失。可以使用 mysqldump 命令进行备份,命令如下: ``` mysqldump -u username -p dbname > backup.sql ``` 其中,username 为数据库用户名,dbname 为数据库名称,backup.sql 为备份的文件名。 2.下载新版本 MySQL:从 MySQL 官网下载最新版本的 MySQL。 3.停止 MySQL 服务:使用以下命令停止 MySQL 服务: ``` sudo systemctl stop mysql ``` 4.卸载旧版本 MySQL:使用以下命令卸载旧版本 MySQL: ``` sudo apt-get remove mysql-server sudo apt-get autoremove ``` 5.安装新版本 MySQL:使用以下命令安装新版本 MySQL: ``` sudo dpkg -i mysql-apt-config_*.deb sudo apt-get update sudo apt-get install mysql-server ``` 其中,mysql-apt-config_*.deb 为下载的 MySQL 安装程序,可能会因为版本不同而有所不同。 6.启动 MySQL 服务:使用以下命令启动 MySQL 服务: ``` sudo systemctl start mysql ``` 7.检查 MySQL 版本:使用以下命令检查 MySQL 版本是否已经升级成功: ``` mysql -V ``` 如果输出的版本号与新版本相同,则升级成功。 8.恢复数据:使用以下命令将备份的数据恢复到新版本的 MySQL 中: ``` mysql -u username -p dbname < backup.sql ``` 其中,username 为数据库用户名,dbname 为数据库名称,backup.sql 为备份的文件名。 升级完成后,可以使用新版本的 MySQL 进行开发和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值