【MySQL】MySQL升级

升级MySQL 本章介绍升级MySQL安装的步骤。升级是一个常见的过程,当您在同一MySQL版本系列中获取bug修复或主要MySQL版本之间的重要功能时。您首先在一些测试系统上执行此过程以确保一切顺利进行,然后在生产系统上执行此过程。在下面的讨论中,必须使用具有管理权限的MySQL帐户运行的MySQL命令包括命令行上的-u root,以指定MySQLroot用户。需要root密码的命令也包括-p选项。因为-p后面没有选项值,所以此类命令会提示输入密码。在提示时键入密码,然后按Enter。 阅读详情

1. 引言

本篇内容主要讲述MySQL升级的事项

MySQL的版本更新很快,新版本中往往包含了很多新功能,并且解决了很多旧版本中的BUG,因此在很多情况下用户需要对数据库进行升级

使用MySQL最大的好处之一是在国内市场使用率特别广泛,可以在许多人使用MySQL的经验中避免一些不易发现的bug,如果升级到一个比较新的版本,可能会在不知不觉中在你的环境中引入bug或引起性能问题,如果版本过旧,又会有一些旧版本中的BUG

总之:升级MySQL升级需要在稳定性和功能之间进行权衡,选择升级前需要仔细考虑

1.1. 升级的出发点

常见原因有:

  • 安全漏洞
  • 已知的bug
  • 新功能、新特性
  • 支持的生命周期终止EOL

1.2. 升级的项目流程

数据库升级不是DBA一个人的事情,但又是DBA需要负责牵头发起的事情

一旦确定了需要做数据库版本升级,首先DBA需要完成版本选择,请提前阅读官网上的版本发行说明,同时下列个人观点也建议参考一下

  1. 建议选择开源的社区版的稳定版LTS版本,LTS 版本有 8+ 年 支持,适用于生产用途,一般开源软件建议选择双数版本
  2. 建议选择时间为6-12月之前发布的版本
  3. 作为内部开发测试数据库环境,跑大概3-6个月的时间之后的版本

之后建议拟定具体执行计划,如人员的协调开发、业务、测试、变更时间、操作步骤、应急方案,尤其是大规模升级

1.3. 升级的方法

  1. An in-place upgrade: 原地替换MySQL Server软件包.
  2. logical upgrade: 利用逻辑备份恢复的方式,将旧的数据导入到新的实例.
  3. replication topology upgrade: 主从架构中,先升级从库,主从切换后再升级原主库.

不管哪种升级方式,都应该先做了备份; 相比之下in-place升级是比较基础的动作

2. in-place升级过程

2.1 上传介质

software_dir="/tmp/rpm"
将mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz安装包解压至此目录
mkdir $software_dir

2.2 执行升级前检查

$software_dir/mysql-shell-8.0.31-linux-glibc2.12-x86-64bit/mysqlsh user:passwd@127.0.0.1:3306 -e "util.checkForServerUpgrade()"

mysql-shell工具,8.0以后,可以调用这个命令,升级之前的预检查。(mysql shell要下载对应的版本)

2.3 升级

上述检查通过之后,可以进行升级

业务停止后检查连接
	检查连接 show processlist;

无连接数之后数据库执行
	set global innodb_fast_shutdown=0;
	
观察error日志-2-3分钟,确保无错误日志
	tail -f /data/3306/logs/mysql.log
		
关闭数据库,数据库内执行
	shutdown;
		
使用CP方法冷备数据
	cp -rp /data/3306 /data/3306.bak1110
	
执行命令升级
	$software_dir/mysql-8.0.31-linux-glibc2.12-x86_64/bin/mysqld_safe --defaults-file=/data/3306/my.cnf --user=mysql --skip-grant-tables --skip-networking &

5.6、5.7版本需要执行
例:/usr/local/mysql57/bin/mysql_upgrade -S /tmp/mysql3306.sock --force
8.0版本直接用新版本启动就可以
例:/usr/local/mysql80/bin/mysqld --defaults-file=/data/3306/my.cnf --user=mysql &

观察数据库日志,显示下列内容则表示完升级完成

2022-11-10T10:06:43.432988Z 4 [System] [MY-013381] [Server] Server upgrade from '80020' to '80031' started.
2022-11-10T10:07:05.775773Z 4 [System] [MY-013381] [Server] Server upgrade from '80020' to '80031' completed.
2022-11-10T10:07:07.628521Z 0 [Warning] [MY-013829] [Server] Missing data directory for ICU regular expressions: /usr/local/mysql/lib/private/.
2022-11-10T10:07:17.490214Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2022-11-10T10:07:17.490352Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2022-11-10T10:07:17.533705Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /tmp/mysqlx.sock
2022-11-10T10:07:17.533841Z 0 [System] [MY-010931] [Server] /tmp/rpm/mysql-8.0.31-linux-glibc2.12-x86_64/bin/mysqld: ready for connections. Version: '8.0.31'  socket: '/data/3306/tmp/3306.sock'  port: 0  MySQL Community Server - GPL.

登录检查版本

select @@version;

重新正常启动

mv /usr/local/mysql /usr/local/mysql.bak1110
mv /tmp/rpm/mysql-8.0.31-linux-glibc2.12-x86_64 /usr/local/mysql
	
/usr/local/mysql/bin/mysql -S /data/3306/tmp/3306.sock -e "shutdown;"
/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf --user=mysql &

至此数据库升级完成

3. 升级中的一些注意事项以及经验

  • 定要在测试环境测好之后再做升级操作
  • 升级前一定要备份,否则无法回退
  • 5.6升级到5.7时,Sql_mode需要改,要么升级之前调整好,要么在5.7关掉sql_mode
  • 主从GTID:如果5.7想用GTID,那么5.6再升级之前必须开启GTID
  • 提前测试好使用到的56版本、57版本、80版本一些函数是否支持
  • 8.0版本时不支持回退到5.7版本的,只能依靠备份来回退
  • 仅可在GA版本之间升级
  • 5.6–> 5.7 ,先将5.6升级至最新版,再升级到5.7
  • 5.5 —> 5.7 ,先将5.5 升级至最新,再5.5—> 5.6最新,再5.6—>5.7 最新

官网参考:之一事项说明

Upgrade is only supported between General Availability(GA) releases.
Upgrade from MySQL 5.6 to 5.7 is supported. Upgrading to the latest release is recommended before upgrading to the next version. For example, upgrade to the latest MySQL 5.6 release before upgrading to MySQL 5.7.
Upgrade that skips versions is not supported. For example,upgrading directly from MySQL 5.5 to 5.7 is not supported.
Upgrade within a release series is supported. For example,upgrading from MySQL 5.7.x to 5.7.y is supported.
Skipping a release is also supported. For example, upgrading from MySQL 5.7.x to 5.7.z is supported.

Mysql版本升级教程【5.x到8.x】 将MySQL5的版本升级到MySQL8的版本,详细教程。 阅读详情

相关推荐

MySQL升级命令(mysql_upgrade)

mysql_upgrade命令是MySQL提供的用于升级服务器和相关系统表的命令行工具。通过执行mysql_upgrade命令,可以自动检测并升级MySQL服务器的版本。在使用该命令之前,请确保已停止MySQL服务器,并备份数据库以防万一。升级过程可能需要一些时间,具体时间取决于系统表的大小和服务器的性能。完成升级后,请重新启动MySQL服务器,以使更改生效。希望本文对你理解和使用mysql_upgrade命令有所帮助。如有任何问题,请随时提问。

VcyReact的博客 3550

MySQL版本升级

对数据字典的升级数据字典有:mysql、information_schema、performance_schema、sys schema。

weixin_tank88921的博客 6787

Error relaunching VirtualBox VM process:5错误解决

前几天在重新使用VirtualBox的时候出现了一个挺恶心的错误,如图 百度了好久没有找到合适的解决方法。功夫不负有心人,在查阅了vb相关论坛时发现了大牛对此问题的诸多解决方案。下面我把此论坛的内容总结一下,希望对大家有帮助。 论坛链接:Diagnosing VirtualBox Hardening Issues 时间不足的小伙伴可以直接看 解决方法 造成这个错误的主要原因是,windows操作系统与oracle vb的不兼容。有两个方面,一是非官方windows系统中包含了一些没有签名的d

JaCenz的博客 3万+

mysql升级

mysql安装升级及参数优化

weixin_51720711的博客 4088

从Datasheet到可用的Verilog模块:手把手教你为N25Q128 SPI Flash写状态机驱动

本文详细介绍了如何从Datasheet到实现可用的Verilog模块,手把手教你为N25Q128 SPI Flash编写状态机驱动。文章涵盖SPI Flash的核心工作机制、数据手册解析方法、Verilog状态机设计实践以及调试与性能优化技巧,特别适合FPGA开发者和硬件设计工程师参考。

weixin_30596023的博客 176

手把手教你用Silvaco Atlas复现GaN蓝光LED仿真:从网格划分到光谱分析全流程避坑

本文详细介绍了如何使用Silvaco Atlas进行GaN蓝光LED仿真,从网格划分到光谱分析的全流程避坑指南。重点讲解了网格划分技巧、材料参数设置、极化效应处理以及结果分析方法,帮助用户快速掌握半导体器件仿真技术,提升研发效率。

weixin_42552716的博客 224

mysql升级_MySQL数据库怎么升级 MySQL数据库升级教程

当前不少系统的数据库依旧是MySQL5.6,由于MySQL5. 7 及MySQL8. 0 在性能及安全方面有着很大的提升,因此需要升级数据库。本文通过逻辑方式、物理方式原地升级来介绍MySQL5.6 升级至MySQL5. 7 的方法,并介绍其使用场景。1. 逻辑方式升级逻辑方式升级其实就是通过逻辑备份工具(例如mysqldump工具)将数据库、表、其他相关对象及数据逻辑备份成SQL脚本,再将其还...

weixin_35836574的博客 1万+

Material Studio中分子动力学模拟得到密度density和溶解度参数

使用sketh工具画出全原子分子,以异辛烷为例子。

handsome213的博客 7318

MySQL 升级步骤

MySQL的基本升级办法,简单,总体都一样,可以收集整理成自动脚本

沙堆的专栏 3225

STM32G474多通道ADC电压采集:软件触发与单次转换实战

本文详细介绍了STM32G474多通道ADC电压采集的实战方法,重点讲解了软件触发与单次转换的实现技巧。通过硬件设计、HAL库配置、多通道轮询采集及数据处理等环节的详细解析,帮助开发者高效完成精确电压采集任务。文章还提供了常见问题调试技巧和性能优化建议,适用于需要高精度电压监测的嵌入式应用场景。

weixin_28720767的博客 463

nginx配置视频流加密防盗链(一)安装nginx插件

前段时间研究了一下视频流的简单加密防盗链,参考了很多文章,最后总算搞出来了。现在自己总结了一下。

u013294657的博客 1864

从低版本MySQL升级到高版本

MySQL是一种关系型数据库管理系统,它可以存储和管理大量结构化数据。数据库是由一个或多个表组成的,每个表包含多个行和列,用户可以通过SQL语言进行增删改查等操作。

微笑的段嘉许的博客 2825

一文看懂 SAP Integration Suite:从架构治理、接口编排到事件驱动的集成全景

SAP Integration Suite是企业数字化转型中的关键集成平台,通过统一的方法论和工具链解决系统互联、数据对齐和流程协同等复杂问题。其核心能力包括:1)集成评估(Integration Assessment)提供战略规划框架;2)迁移评估(Migration Assessment)支持从传统平台向云的平滑过渡;3)云集成(Cloud Integration)实现日常业务流程编排;4)集成顾问(Integration Advisor)简化B2B标准映射;5)贸易伙伴管理(TPM)优化外部协作流程;

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 501

mysql 版本升级 8.0.24升级到 8.0.34

常见升级场景:支持从Mysql 5.7 升级到 mysql 8.0 并且原版本和新版本都要是GA版本,GA版本就是正式发布版。其中的mysql 5.0、5.1、5.5、5.6、5.7 、8.0都是某个系列版本,在这个系列版本下分为很多小版本,比如mysql 5.7系列版本分为5.7.9、5.7.10等。mysql版本系列分为:mysql 5.0.x、mysql 5.1.x、mysql 5.5.x、mysql 5.6.x\、mysql 5.7.x、mysql 8.0.x,使用mysqldump备份数据。

OceanWaves1993的博客 5038

手把手教你学Simulink--基础储能管理场景实例:基于Simulink的扩展卡尔曼滤波(EKF)SOC估计算法仿真

本文介绍了基于Simulink的扩展卡尔曼滤波(EKF)在电池SOC估算中的应用。通过Thevenin等效电路建立非线性电池模型,详细阐述了EKF的状态预测和更新过程。在Simulink中搭建了完整的仿真系统,包括电池模型、EKF核心算法模块和误差分析模块。通过脉冲放电和变电流充放电两种工况测试,验证了EKF算法在短期误差(<0.8%)、长期累积误差(<1.5%)和动态响应时间(30ms)方面的优越性能,相比传统安时积分法显著提高了估算精度。文章还提出了自适应EKF、多模型融合等进阶优化方向,为

MHD0815的博客 99

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Mysql数据库升级-5.7 升级8.0版本 标准升级

事出必有因,在这个月的某个项目中,我们面临了一项重要任务,即每年一次的等保测评整改。这次测评的重点是Mysql的一些高危漏洞,客户要求我们无论如何必须解决这些漏洞。尽管我们感到无奈,但为了满足客户的要求,我们只能硬着头皮进行升级。而碰巧的是,Mysql5.7在10月份停止了更新,借着这次机会,我们决定研究一下Mysql5.7升级到Mysql8.0的过程。在本文的最后,我将分享一些在这次升级过程中遇到的问题。升级需求:将5.7.43升级到8.0.34, 升级方式in-place。

oradbm的博客 4820

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

MySQL大小版本升级步骤

MySQL大小版本升级

qq961573863的博客 4106

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

MySQL数据库版本升级注意事项及操作步骤

MySQL数据库版本升级是一个复杂且关键的过程,涉及到多个方面的问题需要关注和解决。本文详细介绍了MySQL数据库版本升级的注意事项和操作步骤,并通过实际案例展示了如何使用MySQL数据库版本升级解决性能问题。希望能够帮助读者更好地掌握MySQL数据库版本升级的相关知识和技能,为未来的数据库管理和维护提供有力支持。随着技术的不断进步和应用场景的不断扩展,未来MySQL数据库版本升级将面临更多的挑战和机遇。

LSW1737554365的博客 7381

MySQL数据库的版本升级详解

MySQL数据库的版本升级需要谨慎规划,以确保数据安全和服务连续性

zhangxueyi的专栏 4511

MySQL 5.7升级到8.0详细过程

MySQL 5.7升级到8.0详细过程

ArrogantB的博客 8175

Linux 服务升级:MySQL 主从(半同步复制) 平滑升级

从 MySQL 8.0.26 开始,提供了实现半同步复制的新版本插件,一个用于源服务器,一个用于副本服务器。如果你使用新版本的插件,新的系统变量和状态变量可用,旧的不可用。如果您使用旧版本的插件,旧的系统变量和状态变量可用,但新的不可用。information_schema、sys和performance_schema数据库通常不需要备份,因为它们是动态生成的,可以通过查询获取最新的信息。修改原先的ExecStart中,basedir的路径,改为mysql8 的路径。

cronaldo91的博客 2138

MySQL 升级到8.4版本的详细指南

本指南详细介绍了将 MySQL 升级到 8.4 版本的完整流程、注意事项和操作方法。

huanhuanzhou blog 3834

【MySQL】mysql5.7.36 二进制版本升级到mysql5.7.43

现有版本:mysql-5.7.36-linux-glibc2.12-x86_64。3. 修改软件目录和启动文件。

weixin_43346403的博客 1224

手把手教你升级到MySQL 8.0

对于生产环境来说,升级数据库是一件十分 critcal 重要的事情,风险是十分大的! 尤其是大版本的数据库升级,作为DBA必须要谨慎对待。对于数据库的升级:简单地说, 数据库升级绝对不是简单的DBA一个人的事情,前期就需要所有相关人员的参与。本篇文章到此其实最重要已经说完了。下面我们看看从DBA的技术层面,如何对MySQL MGR 进行升级:首先重要的事说三遍:一定要阅读 官网的MySQL 升级文档!!!一定要阅读 官网的MySQL 升级文档!......

个人公众号:Alen的数据库学习笔记 9433
上一篇: Ubuntu22部署MySQL5.7详细教程
下一篇: 使用Python调用ComfyUI API实现图像生成
AIGC镜像空间
博客等级 码龄5年 4万+粉丝 689原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值