MySQL 5.7升级8.0过程(详解)

这篇具有很好参考价值的文章主要介绍了MySQL 5.7升级8.0过程(详解)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

以一个例子为切入点


一、升级背景

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

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

MySQL 5.7升级8.0过程(详解)

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

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

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

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

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

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

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

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

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

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

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

5、更好的MGR使用体验。

等等

二、升级准备及注意事项

1、了解8.0的一些功能。

参考:

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

2、注意事项:

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

3、检查工具。

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

三、升级过程

1、官网下载对应的升级包

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

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


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

#/mysql8.0.19/bin/mysql_upgrade -uroot -p

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

2、操作步骤:


登录服务器进行正常关闭: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)

验证业务是否正常。

更多精彩内容,关注我们▼

MySQL 5.7升级8.0过程(详解)文章来源地址https://www.toymoban.com/news/detail-464357.html

到了这里,关于MySQL 5.7升级8.0过程(详解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Windows上同时安装两个不同版本MYSQL】MySQL安装教程--5.7和8.0版本

    最新版本8.0.34下载链接:https://dev.mysql.com/downloads/mysql/ MySQL 5.7下载链接:https://downloads.mysql.com/archives/community/ 使用解压工具将下载到的压缩包解压:如:解压到D:/software/目录下(自己选择),解压之后建议重命名该解压出来的文件:如mysql-8.0.34-winx64文件夹名,可将后面的wi

    2024年02月08日
    浏览(25)
  • 打破限制!MySQL 5.7至8.0跨版本迁移,1分钟搞定多版本数据迁移

    在上个月,MySQL 5.7 正式结束了生命周期,即EOL(End of Life),意味着Oracle将不再为 MySQL 5.7 提供技术支持,包括Bug修复或安全漏洞,大大增加了使用数据库的风险。在全球关系型数据库市场中,MySQL 市场份额最高,在MySQL各版本使用中,5.7 仍占据大部分比例,其次是 5.6 和 8

    2024年02月05日
    浏览(22)
  • Linux之 centos、Ubuntu 安装常见程序 (-) Mysql 5.7 版本和8.0版本

    注意 需要有root权限 安装5.7版本 – 由于MySql并不在CentOS的官方仓库中,所以需要通过rmp命令: 导入MySQL仓库密钥 1、配置MySQL的yum仓库 配置yum仓库 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 rpm -Uvh http://repo.nysql.com/get/mysql57-community-release-el7-7.noarch.rpm 2、使用yum 安装MySQL yum

    2024年02月14日
    浏览(26)
  • 五.实战软件部署 1-3实战章节-前言&MYSQL 5.7版本在centos系统安装&MYSQL 8.0版本在centos系统安装

    目录 五.实战软件部署 1-实战章节-前言 五.实战软件部署 2-MYSQL 5.7版本在centos系统安装 1-配置yum仓库 2-使用yum安装mysql 3-安装完成后,启动mysql并配置开机自启动 4-检查mysql的运行状态 --配置 1-获取mysql的初识密码 2-登录mysql数据库系统 3-修改root用户密码 4-配置root的简单密码

    2024年02月21日
    浏览(25)
  • 五.实战软件部署 4-5MYSQL 5.7版本在ubuntu(WSL环境)安装&MYSQL 8.0版本在ubuntu(WSL环境)安装

    目录 五.实战软件部署 4-MYSQL 5.7版本在ubuntu(WSL环境)安装 安装 1-下载apt仓库文件 2-配置apt仓库 3-更新apt仓库的信息 4-检查是否成功配置mysql5.7的仓库 5-安装mysql5.7 6-启动mysql 7-对mysql进行初始化 1-输入密码 2-是否开启密码验证插件,如果需要增强密码安全性,输入y并回车,不需

    2024年02月22日
    浏览(21)
  • MySql数据库5.7升级到8.1遇到的问题与解决方案

    Oracle MySql安全漏洞CVE-2023-22056等漏洞爆出来后,准备对系统的MYSQL数据库进行升级,由5.7升级到8.1,本文主要介绍下升级过程中的几个问题。 通过navicat导出数据库的结构和数据,以便升级后恢复到新版本。 下载地址:MySQL :: Download MySQL Community Server 因为系统服务是通过wamp提供

    2024年02月15日
    浏览(17)
  • MySQL 升级到 8.0 变慢问题分析

    前段时间,客户线上 MySQL 版本从 5.7.29 升级到 8.0.25。 升级完成之后,放业务请求进来,没到一分钟就开始出现慢查询,然后,慢查询越来越多,业务 SQL 出现堆积。 整个过程持续了大概一个小时,直到给某条业务 SQL 对应的表加上索引,问题才得到解决。 有一个比较奇怪的

    2024年02月04日
    浏览(21)
  • 一次项目漏洞升级的过程(JDK8升级到JDK17)

    准备工作: 第一步、漏洞扫描工具trivy; 第二步、扫描后的漏洞存在镜像漏洞,中间件漏洞和代码jar包漏洞; 第三步、区分对外和不对外的服务,先更新对外服务; 第四步、找出一个对外服务需要升级的jar 1、spring-web需要升级到6.x,spring-boot需要升级到3.x,JDK需要升级到J

    2024年01月20日
    浏览(26)
  • MySQL 5.7下载安装配置详细教程

    我这边安装的是MySQL 5.7.43 ,以下是详细下载安装配置教程 进入官方网站:https://www.mysql.com/ 首页滑到最下面,找到MySQL Community server 选择你想要的版本和电脑对应配置进行下载 下载完,解压到你想保存的目录 1.右键此电脑-属性—高级系统设置—环境变量—系统变量 2.新建系

    2024年02月09日
    浏览(33)
  • Linux之CentOS_7.9卸载MySQL_5.7全过程实操手册

    前言:接以上,前面记录了Windows和Linux环境的MySQL部署,那我们既然都部署完成验证测试那就来个卸载记录吧,便于闭环收尾。 环境: 1、关闭mysql服务 2、使用 rpm 命令查看已安装的安装包,如有直接rpm -ev卸载 3、查找涉及到mysql的文件及路径 4、删除mysql用户及用户组(如需

    2024年02月13日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包