MySQL8版本升级

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包然后安装再替换就行了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

5G中的随机接入过程可以不用收RAR?

有朋友提到了一种不用接收RAR的RA过程,问这个是怎么回事。其实在刚刚写过的LTM cell switch篇章中就有提到,这里把所有相关的内容整理如下。 在RACH-less LTM场景,在进行LTM cell switch之前就要先知道target cell的TA信息,进而才…

QT数据库SQLite:QsqlTableModel使用总结

数据库连接、数据模型与界面组件所涉及的类之间的关系如下所示: 数据库类 QSqlDatabase 类用于建立与数据库的连接,QSqlDatabase 对象就表示这种连接。QSqlDatabase 类的功能主要分为三大部分: 1、创建数据库连接,即创建 QSqlDat…

C++求20亿内质数的合数“哥德巴赫猜想”

数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24519,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。 输入格式: 输入…

物品识别 树莓派 5 YOLO v5 v8 v10 11 计算机视觉

0. 要实现的效果 让树莓派可以识别身边的一些物品,比如电脑,鼠标,键盘,杯子,行李箱,双肩包,床,椅子等 1. 硬件设备 树莓派 5 raspberrypi.com/products/raspberry-pi-5/树莓派官方摄…

模型训练数据-MinerU一款Pdf转Markdown软件

模型训练数据-MinerU一款Pdf转Markdown软件-说明 简介: MinerU是什么 MinerU是上海人工智能实验室OpenDataLab团队推出的开源智能数据提取工具,专注于复杂PDF文档的高效解析与提取。MinerU能将包含图片、公式、表格等元素的多模态PDF文档转化为易于分析…

51c深度学习~合集9

我自己的原文哦~ https://blog.51cto.com/whaosoft/12750420 #傅里叶特征 (Fourier Feature)与核回归 位置编码背后的理论解释 本文探讨了位置编码背后的理论基础,特别是傅里叶特征(Fourier Feature)与核回归(Kern…

数据仓库工具箱—读书笔记01(数据仓库、商业智能及维度建模初步)

数据仓库、商业智能及维度建模初步 记录一下读《数据仓库工具箱》时的思考,摘录一些书中关于维度建模比较重要的思想与大家分享🤣🤣🤣 博主在这里先把这本书"变薄"~有时间的小伙伴可以亲自再读一读,感受一下…

【JVM】JVM基础教程(三)

上一章:【JVM】JVM基础教程(二)-CSDN博客 目录 运行时数据区 应用场景 程序计数器 程序计数器在运行时会出现内存溢出吗? 栈 IDEA的debug工具查看栈帧的内容 栈帧的组成 局部变量表 关于 this 的内存存储 操作数栈 帧…

如何编译安装系统settings设置应用(5.0.0-Release)

本文介绍如何在OpenHarmony 5.0.0 r版本中修改系统设置应用,并且编译安装到开发板上 开发环境 1.dayu200开发板 2.OpenHarmony 5.0.0r 固件 3.API12 full sdk (如果安装full sdk过程中出现报错hvigor ERROR: Cannot find module typescript,请参考 h…

【Unity】Amplify Shader Editor

Amplify Shader Editor (ASE) Amplify Shader Editor,是一个功能强大的基于节点的着色器开发工具,允许开发者在 Unity 中轻松创建和管理复杂的 Shader。 主要功能和特点 基于节点的编辑器: • 提供直观的可视化界面,减少手写 Sh…

Github2024-12-10 Python开源项目日报 Top10

根据Github Trendings的统计,今日(2024-12-10统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10HTML项目1Rust项目1系统设计指南 创建周期:2507 天开发语言:Python协议类型:OtherStar数量:241693 个Fork数量:42010 次关注人…

1.2.3计算机软件

一个完整的计算机系统由硬件和软件组成,用户使用软件,而软件运行在硬件之上,软件进一步的划分为两类:应用软件和系统软件。普通用户通常只会跟应用软件打交道。应用软件是为了解决用户的某种特定的需求而研发出来的。除了每个人都…

ElementEye,网页分析器

介绍 我们经常使用Python写爬虫,爬到网页数据之后,就需要用beautifulSoup进行解析。因为写爬虫并不是我的主营工作,大多数只是用来分析一下想要的数据而已,所以经常会忘记beautifulSoup的用法。 同时,我们总是分析页面…

Qt 联合Halcon配置

文章目录 配置代码窗口绑定 配置 选择添加库 选择外部库 LIBS -LC:/Program Files/MVTec/HALCON-17.12-Progress/lib/x64-win64/ LIBS -lhalconcpp\-lhdevenginecpp\-lhalconINCLUDEPATH C:/Program Files/MVTec/HALCON-17.12-Progress/include DEPENDPATH C:/Program Fil…

图像像素如何排列?是如何存储到diocm里面?读取到内存中是如何存储?

图像像素的排列和存储在DICOM(Digital Imaging and Communications in Medicine,医学数字成像和通信)文件中遵循特定的标准。DICOM 是一种国际标准(ISO 12052),用于处理、存储、打印和传输医学影像信息。 …

深度学习常用损失函数介绍

均方差损失(Mean Square Error,MSE) 均方误差损失又称为二次损失、L2损失,常用于回归预测任务中。均方误差函数通过计算预测值和实际值之间距离(即误差)的平方来衡量模型优劣。即预测值和真实值越接近&…

在PowerShell下运行curl命令出现错误:Invoke-WebRequest : 无法处理参数,因为参数名称“u”具有二义性

今天在Windows 11下测试Nanamq的HTTP API,按照其文档输入: curl -i --basic -u admin:public -X GET "http://localhost:8081/api/v4/subscriptions" 结果出现二义性错误: 而且输入curl --help命令想看看参数说明的时候&#xff…

学者观察 | Web 3.0生态治理及其安全——北京交通大学副教授李超

导语 李超教授认为Web 3.0中无论是链上治理还是链下治理都有其优劣。链下治理机制更侧重于社区广泛参与和讨论,过程较为繁琐,但能够形成广泛的社区支持和参与,增强决策的合法性和接受度;链上治理机制通过直接在区块链上执行决策&…

React Router 6的学习

安装react-router-dom npm i react-router-dom 支持不同的路由创建 createBrowserRouter 特点 推荐使用的方式,基于 HTML5 的 History API。支持用户友好的 URL,无需 #。适用于生产环境的绝大多数场景。 适用 使用现代浏览器,支持 pus…

光猫开DMZ教程

本教程以移动光猫未例,具体操作以实际光猫为准 1、登录移动光猫管理后台 打开浏览器,在浏览器地址栏输入移动光猫登录管理地址192.168.1.1或者tplogin.cn 按“回车键”打开登录页面,然后输入路由器管理密码登录。 移动光猫登录页面 超级密…