我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL 5.7升级8.0过程(详解)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL 5.7升级8.0过程(详解)

记一次MySQL 5.7升级8.0的详细过程,聊聊我的思路,希望可以帮助大家。

以一个例子为切入点


一、升级背景

为什么要升级到MySQL8.0?大概多久进行一次?

大家可以参考下图记录的各个版本的发布时间,来确认各个版本的最终补丁日期:

从上图来看,当前处在官方支持生命周期的版本是MySQL 8.0, 其中MySQL 5.7处在Extended Support也就意味着只会做安全方面的更新,其它的方面不在处理,MGR的很多特性就没在往5.7中合并。所以当前最佳的方式是升级到MySQL 8.0。

升级大概可以分成三种情况:

a.、依据产品形态定位升级时间;

b.、依据服务的性能指标及成本做决定;

c.、依据于使用到的MySQL特性做决定。

以上三点,如果从升级的必要性角度看,可以反过来看。如果从业务角度出发可以正着看。

作为DBA最关注的就是MySQL的新特性,8.0解决了一些之前版本没有解决的问题,比如:

解决低版本没有彻底解决的BUG。

快速加列。目前使用PT工具变更百G以上大表风险极高,不仅时间很长而且变更期间占用大量磁盘IO,并且容易导致业务报错,比如大量出现锁等待和死锁等,对于核心业务还是很难接受,严重甚至会导致MySQL主从切换。

支持自增值持久化,解决MySQL 8.0之前版本重启后可能会导致依赖自增值的业务或者归档数据可能报错等问题。

JSON功能增强,如果之前有使用json数据类型的话,可以体验到更丰富的函数和同步性能提升等。

更好的MGR使用体验。

等等

二、升级准备及注意事项

了解8.0的一些功能。

参考:

MySQL :: MySQL 8.0 Reference Manual :: 1.3 What Is New in MySQL 8.0

注意事项:

  • 验证插件
  • sql_mode
  • MySQL 8.0 Group by默认不排序,切换后可能会导致业务返回的结果不对。
  • Datetime类型字段的值,不能等于空字符串,否则直接报错。
  • 不建议直接使用MySQL 8.0二进制文件替换的方式进行直接升级。
  • 做好数据同步校验。
  • 在测试环境先做好兼容性测试,避免业务存在使用了一些MySQL 8.0移除的函数、关键字或者语法等。
  • ETL流程要做好兼容MySQL 8.0。
  • 程序驱动不兼容部分已经移除或者改名的变量,需升级驱动。
  • my.cnf配置信息调整
  • 最少停机时间,同样生产数据恢复到环境,进行模拟升级,评估时间
  • 考虑回滚方案
  • 数据库备份

检查工具。

参考:
https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-upgrade.htm

三、升级过程

官网下载对应的升级包

参考
https://downloads.mysql.com/archives/community/

下面是单机升级,高可用架构下需要先升级从库,在逐步升级主库。


执行mysql_upgrade命令,会提示如下:

#/mysql8.0.19/bin/mysql_upgrade -uroot -p在MySQL 8中mysql_upgrade客户端现已弃用。升级客户端执行的操作现在由服务器完成。要升级,请使用较旧的数据目录启动新的 MySQL 二进制文件。自动修复用户表。升级后不需要重新启动。所以必须在测试环境模拟准备对应SQL语句

操作步骤:


登录服务器进行正常关闭:innodb_fast_shutdown是默认是1,常常认为是安全关闭

mysql> show variables like 'innodb_fast_shutdown';+----------------------+-------+| Variable_name        | Value |+----------------------+-------+| innodb_fast_shutdown | 1     |+----------------------+-------+1 row in set (0.00 sec)
mysql> set global innodb_fast_shutdown=0;Query OK, 0 rows affected (0.01 sec)mysql> shutdown;Query OK, 0 rows affected (0.00 sec)备份。


启动mysql服务

mysql> select version();+-----------+| version() |+-----------+| 8.0.19    |+-----------+1 row in set (0.01 sec)

验证业务是否正常。

 

来源地址:https://blog.csdn.net/m0_38048955/article/details/127360747

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL 5.7升级8.0过程(详解)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Windows下升级go版本过程详解

这篇文章主要为大家介绍了Windows下升级go版本过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-03-13

MySQL 5.1.73升级为MySQL 5.5.35详解

一、前言二、概述三、安装MySQL 5.1.73四、升级为MySQL 5.5.35五、总结注,测试环境 CentOS 6.4 x86_64,MySQL 版本(5.1.73、5.5.35)目前最新版。下载地址:http://dev.mysql
2022-11-30

Linux超详细gcc升级全过程

目录前言1.当前gcc版本2.安装gcc3.gmp安装4.MPFR编译5.MPC编译6.GCC 配置7.GCC版本更新前言 c c++ 等等 需要这个编译器gcc,最近有DBA的朋友咨询RHEL7.6操作系统安装mysql数据库时需要 高版
2022-06-04

Mysql 8.0 绿色版安装教程详解

mysql 8.0 绿色版安装教程,供大家参考,具体内容如下1、进入官网找到自己所需的安装包:MySQL :: Developer Zone下载地址:MySQL Community Server 8.0.29 官方免费安装版软件路径:
2022-07-19

MySQL驱动mysql-connector-java升级到8.0.X版本问题怎么解决

这篇文章主要讲解了“MySQL驱动mysql-connector-java升级到8.0.X版本问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL驱动mysql-connec
2023-03-01

centos 6.9 升级glibc动态库的详细过程

glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。很多l
2022-06-04

mysql 存储过程详解

前言 在项目开发中,经常会遇到这样一种场景,当修改A表的一条数据时,需要关联修改B表、C表甚至其他更多表的数据,为什么会这样呢? 在真实的业务场景中,往往一张表的数据关联的业务是多样的,举例来说,用户在页面上完成一个订单,对服务端来说,与这
2023-08-17

win10 安装 mysql 5.7 msi版的教程图文详解

我装msi格式的,主要是想看看装完的my.ini, 文件位置C:\ProgramData\MySQL\MySQL Server 5.7\my.ini, 注意:ProgramData是隐藏文件夹 mysql 5.7 windows 默认 my
2022-05-22

CentOS7环境下gcc(版本10.2.0)升级详细过程

目录简短介绍1、查看当前gcc版本2、下载gcc安装包(10.2.0版本)3、解压安装包4、下载依赖库5、安装系统必须包模块6、创建编译目录7、生成Makefile文件说明:8、编译9、安装10、配置libstdc++.so11、配置环境变
2022-06-04

dev升级win11过程中黑屏如何解决

这篇文章主要介绍了dev升级win11过程中黑屏如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇dev升级win11过程中黑屏如何解决文章都会有所收获,下面我们一起来看看吧。1、首先右键桌面空白处,选择“
2023-07-01

编程热搜

目录