当前位置: 首页 > news >正文

MySQL版本发布模型

MySQL 8.0 之后使用了新的版本控制和发布模型,分为两个主线:长期支持版(LTS)以及创新版。这两种版本都包含了缺陷修复和安全修复,都可以用于生产环境。

下图是 MySQL 的版本发布计划:
在这里插入图片描述

长期支持版

MySQL TLS 版本可以提供稳定的功能和更长的支持期限。

该版本只包含必要的问题修复,从而减少程序变更带来的风险。同时,只有 LTS 版本第一次发布时会新增或者删除功能,例如 8.4.0 LTS 会新增或者删除功能, 8.4.1 LTS 只会修复问题。

MySQL TLS 版本遵循 Oracle 终身支持政策,可以获得 5 年标准支持服务(Premier Support),外加 3 年扩展支持服务(Extended Support),以及无期限的持续支持服务(Sustaining Support)。

创新版

MySQL 创新版提供最新的功能和增强特性。创新版本非常适合快节奏开发环境中的开发人员和 DBA,通过高水平的自动化测试和现代持续集成技术加快升级周期。

创新版本除了提供新功能之外,还会重构 MySQL 代码以更加复合 SQL 标准,因此可能改变某些功能行为,删除弃用的功能等。这些行为变更可能带来巨大影响,尤其是和应用程序相关的行为变更,例如 SQL 语法、新的保留字、查询执行以及查询性能等。这些变更可能会导致应用程序变更,涉及大量迁移工作。

MySQL 创新版的支持只会持续到下一个创新版发布。

产品组合

MySQL Server、MySQL Shell、MySQL Router、MySQL Operator for Kubernetes 以及 MySQL NDB Cluster 都会提供 LTS 版本和创新版。

MySQL Connectors 使用统一的版本号,最新版本可以兼容所有支持的 MySQL Server 版本。例如,MySQL Connector/Python 9.0.0 兼容 MySQL Server 8.0、MySQL Server 8.4 以及 MySQL Server 9.0。

安装/升级/降级

两个版本主线会影响到 MySQL 的安装、升级以及降级,推荐选择其中一个版本主线并且升级相应的版本。

如果使用官方的 MySQL 安装源,可以在源配置中设置版本主线。例如,yum 源可以选择 mysql-innovation-community 安装和升级创新版,或者使用 mysql-8.4-lts-community 安装和升级 MySQL 8.4.x 长期支持版。

在同一个 LTS 版本序列中不会改变功能和数据结构,因此可以进行就地(in-place)升级和降级。例如,MySQL 8.4.0 升级到 MySQL 8.4.x。LTS 版本升级到下一个 LTS 版本序列也没问题,例如 MySQL 8.4.x 升级到 MySQL 9.7.x。但是,MySQL 不支持跨越 LTS 版本序列升级,例如 MySQL 8.4.x 不能跨越 MySQL 9.7.x 直接升级到 MySQL 10.7.x。

MySQL 创新版遵循类似的升级规则,例如 MySQL 9.0.0 可以升级到 MySQL 9.3.0。主要的区别在于不同主版本中的创新版本不能直接升级,例如 MySQL 8.3.0 不能直接升级到 MySQL 9.0.0。我们需要首先升级到最近的 LTS 版本序列,然后再升级到创新版本序列。例如 MySQL 8.3.0 先升级到 MySQL 8.4.0,然后再从 MySQL 8.4.0 升级到 MySQL 9.0.0。

为了简化升级过程,MySQL 官方安装源将 LTS 第一个版本同时作为 LTS 和创新版。所以,如果我们配置了创新版升级主线,就可以从 MySQL 8.3.0 升级到 MySQL 8.4.0,然后再升级到 MySQL 9.0.0。

MySQL 创新版的降级需要执行逻辑导出和导入。

下篇文章我们会介绍 MySQL 升级和降序的版本路径以及支持的方法。

相关文章:

  • unity2d Ugui--Image城市道路汽车行驶
  • 多层级iframe下JS调用点击事件
  • Sui的Fastcrypto加密库刷新速度记录
  • 【单片机】三极管的电路符号及图片识别
  • 机动车检测站授权签字人精选试题(附答案)
  • elasticsearch的入门与实践
  • 入侵检测系统(IDS)
  • 【文末附gpt升级秘笈】关于“登月游戏”的详细内容介绍
  • java程序什么时候需要在运行的时候动态修改字节码对象
  • minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析
  • [Qt] Qt Creator中配置 Vs-Code 编码风格
  • 算法第八天:leetcode 35.搜索插入位置
  • TVBOX 最新版下载+视频源教程
  • 深入理解Java中的并发编程
  • 【LeetCode215】数组中的第K个最大元素
  • $translatePartialLoader加载失败及解决方式
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • canvas 五子棋游戏
  • css属性的继承、初识值、计算值、当前值、应用值
  • egg(89)--egg之redis的发布和订阅
  • interface和setter,getter
  • Java到底能干嘛?
  • PHP的Ev教程三(Periodic watcher)
  • Python连接Oracle
  • React16时代,该用什么姿势写 React ?
  • vuex 学习笔记 01
  • 初探 Vue 生命周期和钩子函数
  • 计算机在识别图像时“看到”了什么?
  • 学习Vue.js的五个小例子
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • postgresql行列转换函数
  • 阿里云API、SDK和CLI应用实践方案
  • ​马来语翻译中文去哪比较好?
  • !!Dom4j 学习笔记
  • # 飞书APP集成平台-数字化落地
  • #pragma预处理命令
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • $.ajax中的eval及dataType
  • (11)MSP430F5529 定时器B
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (二) 初入MySQL 【数据库管理】
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (四)事件系统
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (总结)(2)编译ORB_SLAM2遇到的错误
  • .Family_物联网
  • .jks文件(JAVA KeyStore)
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .Net Core 微服务之Consul(二)-集群搭建
  • .net FrameWork简介,数组,枚举