MySQL8版本升级

news2024/12/12 21:35:51

1.官方升级手册必看

1.1 理解升级过程会做什么

手册网址:https://dev.mysql.com/doc/refman/8.0/en/upgrading.html

升级mysql 系统数据库(默认的库),升级mysql 用户数据库(用户创建的库)

升级步骤分为两步:

  • 数据字典升级:库中的数据字典表、performance_schema库、information_schema库和ndbinfo。
  • 服务端升级:mysql库的系统表,也就是非数据字典表、sys库、用户创建的库

这就是整个MySQL版本升级的整个流程,我们对升级哪些库心里有数就行,操作的话是由MySQL升级程序来做

1.2 备份升级前的数据

使用脚本进行备份

脚本可以参考之前文章:MySQL生产环境备份脚本

在这里插入图片描述

1.3 升级最佳实践

确定升级的主要版本或次要版本

确定升级类型

查看支持的平台

了解 MySQL 服务器更改

运行 Upgrade Checker 并修复不兼容问题

在测试环境中运行应用程序

对应用程序和工作负载性能进行基准测试

并行运行两个 MySQL 版本

运行最终测试升级

检查 MySQL 备份

升级生产服务器

请参考官方手册:https://dev.mysql.com/doc/refman/8.0/en/upgrade-best-practices.html

2.升级方式选择

2.1 在 Unix/Linux 上升级 MySQL 二进制或基于软件包的安装

参考链接:https://dev.mysql.com/doc/refman/8.0/en/upgrade-binary-package.html

2.2 在 Windows 上升级 MySQL

参考链接:https://dev.mysql.com/doc/refman/8.0/en/windows-upgrading.html

2.3 在Docker上升级MySQL

参考链接:https://dev.mysql.com/doc/refman/8.0/en/upgrade-docker-mysql.html

3.升级前准备

本次使用的是8.0.26升级到8.0.30

3.1 确定不存在以下问题

  • 必须没有使用过时的数据类型或函数的表
  • 不能有孤立的.frm文件
  • 触发器不能缺少或空定义器或无效的创建上下文(由SHOW Triggers或INFORMATION_SCHEMA Triggers表显示的character_set_client、collation_connection、Database Collation属性指示)。必须转储并恢复任何此类触发器以解决问题。
查询语句: mysqlcheck -u root -p --all-databases --check-upgrade

在这里插入图片描述

如果出现值不是ok的话,是 warningerrornote 等等

  1. 查看具体错误:这些信息会提供关于问题的具体细节,根据 mysqlcheck 的输出,确定哪些数据库或表有问题。

  2. 修复数据库:对于表损坏或索引问题,可以使用 mysqlcheck--repair 选项来尝试修复

    mysqlcheck -u root -p --all-databases --repair
    #一定是在有备份的情况下再操作,不然可能会导致数据丢失,请谨慎!!!
    

3.2 不能有使用存储引擎的分区表 不支持本机分区

#查询语句
SELECT TABLE_SCHEMA, TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE ENGINE NOT IN ('innodb', 'ndbcluster') 
AND CREATE_OPTIONS LIKE '%partitioned%';

结果如下,为空则没有问题,如果不是为空的话,需要进行以下操作

ALTER TABLE 表名 ENGINE = INNODB;
#先把引擎改成InnoDB

ALTER TABLE 表名 REMOVE PARTITIONING;
#把分区表设置为非分区表

在这里插入图片描述

3.3 外键约束名不超过64个字符

#查询语句
SELECT TABLE_SCHEMA, TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME IN 
(SELECT LEFT(SUBSTR(ID,INSTR(ID,'/')+1),  
	INSTR(SUBSTR(ID,INSTR(ID,'/')+1),'_ibfk_')-1)   
FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN   
WHERE CHAR_LENGTH(SUBSTR(ID,INSTR(ID,'/')+1))>64);

结果如下,出现报错,提示我们没有任何一个表的外键约束名超过64个字符(难得这么想看到报错_

在这里插入图片描述

4.开始升级

本次使用的是8.0.26版本升级到8.0.30版本,且版本8.0.26用的是二进制安装的,所以请参考链接

https://dev.mysql.com/doc/refman/8.0/en/upgrade-binary-package.html

4.1 确认innodb_fast_shutdown的值

#查询语句
show variables like '%innodb_fast_shutdown%';

结果如下,如果是2的话需要修改成1或0

#调整语句
SET GLOBAL innodb_fast_shutdown = 1; -- fast shutdown 
SET GLOBAL innodb_fast_shutdown = 0; -- slow shutdown

在这里插入图片描述

4.2 关闭版本8.0.26的mysql服务

systemctl stop mysql
netstat -antlp|grep 3306
systemctl status mysql

在这里插入图片描述

4.3 安装MySQL8.0.30的tar.gz包

安装包下载地址:https://downloads.mysql.com/archives/community/

#上传压缩包并解压
1.tar -zxvf mysql-8.0.30-el7-x86_64.tar.gz

#覆盖mysql目录
cp -frp mysql-8.0.30-el7-x86_64/* /usr/local/mysql/
#如果要一直输入yes的话可以使用
yes | cp -R mysql-8.0.30-el7-x86_64/* /usr/local/mysql/

#查看版本
mysqld --version

启动mysql,查看MySQL状态
systemctl start mysql.service
systemctl status mysql.service

结果如下:

在这里插入图片描述
在这里插入图片描述

查看日志

#日志路径根据个人配置文件里的查询
cat /usr/local/mysql/data/mysql_error.log

started 这条代表开始升级  complete 代表升级完成

在这里插入图片描述

以上就是二进制安装包的升级方式了,rpm一样就不多阐述了,也是下载rpm包然后安装再替换就行了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2258434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CTFshow-命令执行(Web29-40)

CTFshow-命令执行(Web29-40) CTFWeb-命令执行漏洞过滤的绕过姿势_绕过空格过滤-CSDN博客 总结rce(远程代码执行各种sao姿势)绕过bypass_远程命令执行绕过-CSDN博客 对比两者的源代码,我们发现,cat指令把flag.php的内容导出后依…

【OpenCV】直方图

理论 可以将直方图视为图形或曲线图,从而使您对图像的强度分布有一个整体的了解。它是在X轴上具有像素值(不总是从0到255的范围),在Y轴上具有图像中相应像素数的图。 这只是理解图像的另一种方式。通过查看图像的直方图,您可以直观地了解该…

OpenAI直播发布第4天:ChatGPT Canvas全面升级,免费开放!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

PDF 文件如何转为 CAD 图纸?PDF2CAD 使用教程

在工程设计和建筑行业中,PDF 文件常常被用来分享和存档图纸。然而,当需要对这些图纸进行编辑或进一步开发时,静态的 PDF 格式就显得力不从心了。这时候,将 PDF 文件转换为可编辑的 CAD(计算机辅助设计)格式…

JS进阶DAY3|事件(三)事件委托

目录 一、事件委托 1.1 概念 1.2 代码示例 二、tab栏切换案例 一、事件委托 1.1 概念 事件委托是一种在JavaScript中常用的技术,它利用了DOM事件冒泡的原理。事件冒泡是指当在DOM树中较低层次的元素上发生事件时,这个事件会向上冒泡到更高层次的元素…

小白如何学习看懂CAD图纸?

首先,你需要了解CAD图纸的基本构成,包括图例、尺寸标注、比例等等。接着,你可以通过一些专业的书籍、在线课程或视频教程来逐步学习如何识别和理解这些元素。但建议不要学的太复杂了。 掌握基本概念: 坐标系:了解CAD…

让PPT不再“难搞”:智能工具如何改变办公体验

PPT的世界是一场属于设计感与逻辑力的双重较量。那些字体配色的小心思,排版设计的大考验,无不让人抓耳挠腮。然而,科技的加持让这一切正悄然改变。比如,随着 ai生成ppt 工具的兴起,许多复杂操作正被重新定义&#xff0…

大语言模型(LLM)与智能机器人的应用分析

系列文章目录 前言 近年来,大型语言模型(LLM)的集成彻底改变了机器人领域,使机器人能够以人类熟练程度进行交流、理解和推理。本文探讨了 LLM 对机器人的多方面影响,并针对在不同领域利用这些模型的关键挑战和机遇进行了研究。通过将 LLM 应用程序分类并分析核心机器人元素…

【论文速读】| AttackQA:利用微调及开源大语言模型辅助网络安全运营的数据集的开发与应用

基本信息 原文标题: AttackQA: Development and Adoption of a Dataset for Assisting Cybersecurity Operations Using Fine-Tuned and Open-Source LLMs 原文作者: Varun Badrinath Krishna 作者单位: SambaNova Systems 关键词: 网络安全、检索增强生成(RAG&…

Android 车载虚拟化底层技术-Kernel 5.10 -Android12(multi-cards)技术实现

详细代码实现见 Android Display Graphics系列文章-汇总​​​​​​Android Display Graphics系列文章-汇总 Android Display Graphics系列文章-汇总 Android Display Graphics系列文章-汇总 本文主要包括部分: 一、Android12的Kernel 5.10版本 1.1 Kernel 5…

lqb_算法

1.蓝桥杯2024年第十五届决赛真题- 蚂蚁开会 题目描述 二维平面上有 n 只蚂蚁,每只蚂蚁有一条线段作为活动范围,第 i 只蚂蚁的活动范围的两个端点为 (uix, uiy),(vix, viy)。现在蚂蚁们考虑在这些线段的交点处设置会议中心。为了尽可能节省经费&#xf…

【银河麒麟高级服务器操作系统】修改容器中journal服务日志存储位置无效—分析及解决方案

了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://documentkylinos.cn 服务器环境以及配置 【机型】 整机类型/架构&am…

springboot422甘肃旅游服务平台代码-(论文+源码)_kaic

摘 要 使用旧方法对甘肃旅游服务平台的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在甘肃旅游服务平台的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的…

决策曲线分析(DCA)中平均净阈值用于评价模型算法(R自定义函数)

决策曲线分析(DCA)中平均净阈值用于评价模型算法 DCA分析虽然不强调用来评价模型算法或者变量组合的优劣,但是实际应用过程中感觉DCA曲线的走势和模型的效能具有良好的一致性,其实这种一致性也可以找到内在的联系,比如…

短信验证码burp姿势

首先声明,本文仅仅作为学习使用,因个人原因导致的后果,皆有个人承担,本人没有任何责任。 在之前的burp学习中,我们学习了图片验证码的突破,但是现实中还有很多短信验证码,在此我介绍几种短信验…

机器学习:全面学习路径指南

摘要: 本文精心规划了一条从入门到精通机器学习的学习路线,详细涵盖了基础理论构建、核心技术栈掌握、主流算法学习、实践项目锻炼以及前沿领域探索等多个关键阶段。通过逐步深入各个层面,介绍必备的数学知识、编程工具、经典与现代机器学习算…

聚类及Python下实现 K-means 算法

聚类 聚类是无监督学习中的一种重要方法,旨在将数据集中相似的数据对象划分到同一个簇中,使得不同簇之间的数据对象差异尽可能大。在大数据环境下,聚类可以帮助挖掘数据中的隐藏结构和模式,应用场景十分广泛,比如在客…

【Qt在线安装器】不能下载Qt5

qt在线下载不显示以前的版本时: 勾选”Archive“,点击”筛选“ 然后就会显示出QT5的版本, 按流程下载即可

html|本地实现浏览器m3u8播放器,告别网络视频卡顿

前言 网络上经常是以m3u8文件传输视频流的 ,但是有时网络慢往往导致视频播放卡顿。于是我在想能不能先下载然后再播放呢?于是尝试下载然后实现本地播放m3u8视频。 正文 1.找到网络视频流的m3u8连接 一般在浏览器按F12就可以看到有请求视频流的连接。 …

[leetcode100] 101. 对称二叉树

https://leetcode.cn/problems/symmetric-tree/description/?envTypestudy-plan-v2&envIdtop-100-liked 心血来潮,突然感觉很久没做leetcode,刷一题。 看到“简单”,哦吼,应该很快吧。 结果真是《简单》 题目描述 给你一个…