ITPub博客

首页 > 数据库 > MySQL > 基于Linux的MySQL8.4二进制本地升级实施文档

基于Linux的MySQL8.4二进制本地升级实施文档

原创 MySQL 作者:梦夕林1992 时间:2026-05-18 17:53:47 0 删除 编辑

升级生产环境的数据库是一项需要谨慎操作的任务,不当的升级过程可能导致数据丢失或服务中断。本文将基于标准化实施文档,详细介绍在Linux系统上对MySQL 8.4进行二进制本地升级的完整流程,涵盖备份、升级准备、执行升级及验证等关键环节。

一、数据库备份(升级前的安全网)

1. 冷备(完全停机备份)

适用场景:允许服务停机的维护窗口。

操作步骤:

mkdir -p /mysql/product/databak
cp -r /mysql/product/data/* /mysql/product/databak

注意事项:执行前需检查MySQL配置文件(如my.cnf),确认所有数据文件(包括日志等)均位于数据目录内,避免遗漏。

2. 逻辑热备(使用mysqldump)

适用场景:不能长时间停机,且数据量不是特别巨大的情况。

# 备份全库,包含存储过程、事件和权限
mysqldump -uroot -p[您的密码] --single-transaction --master-data=2 -E -R --all-databases > full_backup.sql
# 验证备份
tail -1 full_backup.sql
当输出 -- Dump completed on ... 时,表示备份成功。--single-transaction 参数确保在InnoDB表上获得一致性备份

3. 物理热备(使用Percona XtraBackup)

适用场景:大型数据库,要求备份和恢复速度快,最小化停机时间。

•  下载并安装XtraBackup 8.4(需与MySQL 8.4版本匹配)。

•  配置环境变量。

•  执行备份命令:

xtrabackup --defaults-file=/mysql/mysql84/app/my.cnf -uroot -p[您的密码] -S /mysql/mysql84/product/data/mysql.sock --backup --target-dir=/Xtrabackup/backup

成功标志是输出结尾包含 completed OK! 。

二、执行就地升级

1. 升级前准备

•  下载新版本:从 MySQL官方社区版下载页面   获取目标版本的二进制安装包(如 mysql-8.4.x-linux-glibc2.17-x86_64.tar.xz )。

•  检查升级路径:MySQL不支持跨大版本直接升级(例如,不能从5.5直接到8.4)。规划合理的逐步升级路径。

•  检查配置文件兼容性:核对 my.cnf   中的参数是否与新版本MySQL兼容,移除或修改废弃的参数。

2. 提交或回滚分布式事务

如果使用了XA事务,升级前必须处理未完成的事务,避免数据不一致。

-- 检查未提交的XA事务
mysql> XA RECOVER;
-- 根据事务状态,提交或回滚
mysql> XA COMMIT 'xid_value';

3. 配置慢关机(仅InnoDB)

确保InnoDB在关闭前完成所有清理工作(如合并更改缓冲区、刷脏页),使数据文件处于一致性状态。

mysql> SET GLOBAL innodb_fast_shutdown = 0;

4. 关闭原数据库

•  使用命令行关闭:

mysqladmin -uroot -p[您的密码] shutdown

•  如果配置为系统服务,使用服务命令:

service mysqld stop
# 或 
systemctl stop mysqld

5. 备份原安装目录

移走旧版本的二进制文件,为安装新版本腾出位置,同时保留旧版本以便回滚。

mkdir -p /mysql/appbak
mv /mysql/app /mysql/appbak

6. 解压新版本数据库

将新版本的二进制包解压到原安装目录。

tar -Jxf mysql-8.4.x-linux-glibc2.17-x86_64.tar.xz -C /mysql/app --strip-components=1

7. 启动数据库服务

•  以前台方式启动(调试用):

mysqld_safe --defaults-file=/etc/my.cnf &

•  如果使用系统服务,需重新配置服务脚本:

cp /mysql/app/support-files/mysql.server /etc/init.d/mysqld
编辑 /etc/init.d/mysqld,确保 basedir 和 datadir 指向正确的路径,然后启动服务:
service mysqld start

8. 执行升级操作

新版本的MySQL服务器在第一次启动时,如果检测到数据字典是旧版本, 会自动执行升级流程 。此过程会更新系统表结构、修改元数据等。可以通过查看MySQL错误日志(通常位于 datadir   下的 hostname.err )来监控升级进度和确认是否成功。

9. 重启数据库

为确保所有系统表的更改生效,建议完全重启一次数据库服务。

# 如果使用服务
service mysqld restart
# 或者手动操作
mysqladmin -uroot -p[您的密码] shutdown 
mysqld_safe --defaults-file=/etc/my.cnf &

重启后,使用 mysql -uroot -p   登录,执行 SELECT VERSION();   确认版本号已更新。

总结

成功的数据库升级依赖于 完备的备份 、 清晰的升级路径规划 和 按部就班地执行 。本文详述的步骤是经过实践检验的标准化流程,重点在于:

备份先行 :根据业务容忍度选择冷备、逻辑热备或物理热备。

稳妥升级 :处理未决事务、慢速关机、备份旧程序、安装新程序。

验证收尾 :启动后确认版本,检查错误日志,并进行基本的功能测试。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29956245/viewspace-3171563/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2014-10-13

  • 博文量
    90
  • 访问量
    85403