MySQL 5.7.44 升级到 MySQL 8.0.35 详细文档

:2024年10月17日 DBA小强
分享到:

本文主要介绍了MySQL 5.7.44升级到MySQL 8.0.35的详细过程,包括升级背景、环境信息、升级前的准备工作、升级过程和升级后的检查。在升级过程中,建议使用MySQL Shell进行升级前检查,确保数据安全和兼容...

MySQL 5.7.44 升级到 MySQL 8.0.35 详细文档(使用二进制方式)

1. 升级背景与环境信息

  • 目标:将 MySQL 5.7.44 升级到 MySQL 8.0.35,确保数据安全、最小化关服务时间,使用二进制安装方式。

  • 服务器环境

  • IP 地址: 192.168.100.120

  • MySQL 基本路径 (basedir): /usr/local/mysql

  • 数据路径 (datadir): /data/mysqldata

  • 配置文件: /etc/my.cnf

  • 操作系统: Red Hat/CentOS 7.x 系列

  • 注意事项

  • MySQL 8.0 对于权限系统、数据格式、SQL 语法等有重大变化。

  • mysql_upgrade 在 MySQL 8.0 中已弃用,应使用 mysqlsh 进行兼容性检查与数据升级。

2. 升级前的准备工作

  1. 安装必要的工具和依赖

  • 确保以下依赖已经安装:

  • yum install -y gcc libaio perl-Data-Dumper mysql-shell

  1. 下载 MySQL 8.0 二进制安装包

  • 从 MySQL 官方下载 MySQL 8.0.35 的二进制安装包:

  • wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz

  1. 检查现有应用兼容性

  • 检查当前应用对 MySQL 8.0 的兼容性,特别是针对 SQL 语法、权限和数据存储格式的变更。

  1. **配置 MySQL Shell (mysqlsh)**:

  • 安装 MySQL Shell,作为升级检查工具:

  • yum install mysql-shell

3. 升级前的检查

3.1 使用 MySQL Shell 进行升级前检查

使用 mysqlsh 进行数据库的兼容性检查,确保数据库结构、权限等适配 MySQL 8.0。

  1. 连接到 MySQL 5.7

  2. mysqlsh root@localhost:3306 --mysql

  3. 运行升级检查工具

  • 使用 util.checkForServerUpgrade() 检查是否存在兼容性问题:

  • \connect root@localhost:3306

  • util.checkForServerUpgrade({"datadir": "/data/mysqldata", "targetVersion": "8.0.35", "configPath":"/etc/my3410.cnf"})

  1. 检查并修复兼容性问题

  • 解决检查中发现的兼容性问题,包括表结构、字符集、权限系统等。

3.2 检查权限系统与数据结构

  1. 检查表的引擎与字符集

  • MySQL 8.0 强制使用 utf8mb4 编码,确保所有表和数据库使用正确的字符集:

  • SELECT table_schema, table_name, engine, table_collation

  • FROM information_schema.tables

  • WHERE  engine != 'InnoDB' OR table_collation NOT LIKE 'utf8mb4%';

  1. 导出用户和权限表

  • 确保升级前备份用户和权限,防止权限丢失:

  • mysqldump -u root -p mysql > /backup/mysql_users_backup.sql

  1. 检查大小写,SQL_MODEL:

  • 确保数据库大小写,SQL_MODE一致:

  • show variables like 'sql_mode';

  • show variables like 'lower_case_table_names';

4. 升级前的备份

4.1 使用逻辑备份(推荐)

逻辑备份是最安全的升级方式,避免物理格式的兼容性问题。使用 mysqldump 对所有数据库进行完整备份。

mysqldump -u root -p --all-databases --routines --triggers --events --single-transaction --flush-logs > /backup/full_backup.sql

  • 备份路径:/backup/full_backup.sql

  • 权限表备份:已包含在 --all-databases 中,但单独备份权限表可增强安全性。

4.2 验证备份文件

在备份完成后,确保备份文件无误:

less /backup/full_backup.sql

5. 升级步骤明细

5.1 停止 MySQL 5.7 服务

首先停止 MySQL 5.7 服务,确保所有数据写入已完成:

systemctl stop mysqld

5.2 备份 MySQL 安装目录和数据目录

为了确保即使升级失败,也可以完整回滚,需要备份当前的安装目录和数据目录。

mv /usr/local/mysql /usr/local/mysql_backup

cp -R /data/mysqldata /data/mysqldata_backup

5.3 解压 MySQL 8.0.35 二进制包

解压并安装新的 MySQL 8.0.35 二进制包。

tar -xvf mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz

mv mysql-8.0.35-linux-glibc2.12-x86_64 /usr/local/mysql

chown -R mysql:mysql /usr/local/mysql

5.4 保持现有的数据目录

不要对数据目录进行初始化,直接保留 MySQL 5.7 的数据文件。确保数据目录的权限正确:

chown -R mysql:mysql /data/mysqldata

5.5 启动 MySQL 8.0

启动 MySQL 8.0 服务:

systemctl start mysqld

6. 升级后的验证

6.1 验证 MySQL 版本

确保 MySQL 已成功升级到 8.0.35:

mysql --version

6.2 验证数据完整性

使用 mysqlcheck 验证数据的完整性:

mysqlcheck -u root -p --all-databases

6.3 验证权限系统

检查用户权限是否正常:

SELECT  user, host FROM mysql.user;

7. 升级失败的回退方案

若升级过程中遇到无法解决的问题,或 MySQL 8.0 无法正常工作,可回滚至 MySQL 5.7。

  1. 停止 MySQL 8.0 服务

  2. systemctl stop mysqld

  3. 恢复 MySQL 5.7 安装目录与数据目录

  4. mv /usr/local/mysql /usr/local/mysql_failed

  5. mv /usr/local/mysql_backup /usr/local/mysql

  6. mv /data/mysqldata /data/mysqldata_failed

  7. mv /data/mysqldata_backup /data/mysqldata

  8. 启动 MySQL 5.7

  9. systemctl start mysqld

  10. 验证 MySQL 5.7 数据与服务:检查是否一切恢复正常。

8. 总结

  • 逻辑备份优先:在升级过程中始终优先使用逻辑备份,确保数据安全。

  • 兼容性检查:通过 MySQL Shell 的 util.checkForServerUpgrade() 工具提前发现并解决兼容性问题。

  • 无需重新初始化数据:数据目录保留现有结构,避免误操作导致数据丢失。

  • 回滚机制:通过备份原有 MySQL 目录和数据,确保即使升级失败也能快速回滚。

此文档力求确保升级过程稳健、安全,帮助你顺利完成从 MySQL 5.7.44 到 8.0.35 的升级。

原谅来源:https://mp.weixin.qq.com/s/lxBiCPHQfaZ7pkVsCpJv4Q

[我要纠错]
文:宋聪乔&发表于江苏
关键词: MySQL 5.7.44 升级 MySQL 8.0.35

来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。

点个赞
0
踩一脚
0

您在阅读:MySQL 5.7.44 升级到 MySQL 8.0.35 详细文档

Copyright©2013-2024 JSedu114 All Rights Reserved. 江苏教育信息综合发布查询平台保留所有权利

苏公网安备32010402000125 苏ICP备14051488号-3技术支持:南京博盛蓝睿网络科技有限公司

南京思必达教育科技有限公司版权所有   百度统计

最热文章
最新文章
  • 卡尔蔡司镜片优惠店,镜片价格低
  • 苹果原装手机壳