[转帖]MySQL8.1来了:MySQL创新和长期支持(LTS)版本简介
https://cloud.tencent.com/developer/article/2303772
在Oracle,我们不断寻找改进产品的方法,以更好地满足您的需求。我们很高兴推出MySQL创新和长期支持版本,这是MySQL版本控制模型的重要改进。
MySQL 5.7和以前版本的补丁版本主要集中在bug修复和安全补丁上。这在MySQL 8.0中发生了变化,补丁版本中的持续交付模型也包含了新功能。这使得MySQL能够更频繁地向用户发布新功能,而不是每隔几年才发布一次功能。但是,我们知道这种方法可能会给只需要关键补丁的项目和应用程序带来挑战,而这些补丁的行为更改频率较低。我们听取了您的反馈并观察了行业趋势,我们现在正在过渡到一个版本控制模型,您可以在创新和长期支持(LTS)版本之间进行选择。
创新和LTS版本都是生产级质量。如果您希望获得最新的功能和改进,并喜欢掌握最新的技术,MySQL 创新版本可能是最适合您的。这些版本非常适合在快节奏的开发环境中工作的开发人员和DBA,这些开发环境具有高级别的自动化测试和现代持续集成技术,可实现更快的升级周期。另一方面,如果您的环境需要保持已建立的行为,那么LTS版本是您要走的路。这些版本只包含必要的修复,因此它们降低了与数据库软件行为更改相关的风险。
使用新的MySQL版本控制模型,您可以灵活地选择适合特定应用程序和环境需求的选项。我们的目标是确保您在Innovation和LTS版本中获得卓越的用户体验。您可以在下面找到有关新版本控制模型和转换过程的其他信息。
过渡到创新和LTS版本
我们将在即将发布的版本中过渡到新的MySQL版本控制模型。MySQL数据库版本8.1.0将是我们的第一个创新版本,8.0.34+将过渡到仅修复错误,直到计划于2026年4月结束的8.0生命周期(EOL)。大约一年后,MySQL版本8.x将最终成为LTS版本,这将为用户提供充足的时间从8.0.x迁移到8.x LTS版本。
在实践中,在这个过渡期,如果您想要MySQL数据库的最新功能、改进和所有错误修复,请使用创新发布版本(例如,8.1.x、8.2.x、8.3.x等)。如果您只需要修复MySQL数据库的错误,请使用8.0.x版本(例如,8.0.35、8.0.36、8.0.37等)。在这两种情况下,您都应该计划根据Oracle关键补丁更新日历每季度更新一次MySQL数据库。当8.x成为LTS时,您可以计划、测试从8.0.x错误修复版本迁移到LTS发布版本(例如,从8.0.37到8.4.1)。
MySQL产品组合和支持生命周期
LTS版本将遵循Oracle终身支持政策,其中包括5年的高级支持和3年的扩展支持。创新版本将得到支持,直到下一个主要和次要版本。
MySQL产品组合中的大多数产品都有Innovation和LTS版本:
- MySQL Server、MySQL Shell、MySQL Router、MySQL NDB Cluster将发布Innovation和LTS版本。
- MySQL Operator for Kubernetes,InnoDB ReplicaSet,Cluster和ClusterSet将有Innovation和LTS版本。
- MySQL连接器将使用最新版本,但将被视为一般可用,并将与所有支持的MySQL服务器版本保持兼容。
- MySQL Workbench将保留在8.0.x上,并且通常可用,并将与所有受支持的MySQL Server版本保持兼容。
MySQL版本发布节奏
- MySQL 8.0.34+将成为仅修复错误的版本(红色)
- 创新发布(灰色)可能每季度发布一次
- 大约每2年将发布一个新的长期支持版本(蓝色)。8.x LTS版本是一个例外,它将在8.0的EOL之前发布
在接下来的几年里,MySQL的版本控制将与示例图类似,如图所示:
请注意,这是一个示例,没有承诺版本编号将与所呈现的完全相同。
创新发布
创新版本类似于MySQL 8.0持续开发模型(< 8.0.34),包括错误修复,安全补丁和新功能。
对创新版本的支持有限,直到下一个次要版本(创新或LTS)。目前的节奏目标是每季度发布一个创新版本,增加次要版本号(例如:8.2、8.3等)。在创新版本中发布补丁是可能的,但不太可能发生。
创新版本也将是一般可用的,并建议在生产环境中使用。漏洞修复和安全补丁通常会包含在下一个创新或LTS版本中,而不是作为该创新版本中的补丁版本的一部分。在使用创新版本时,有必要定期升级到最新的创新版本,以跟上最新的错误修复和安全补丁。
除了错误修复、安全补丁和新功能之外,创新版本还将引入新的弃用、删除功能,甚至行为更改。为了在引入此类变革时降低升级的风险和复杂性,将制定关于何时和如何进行升级的政策和最佳做法。
功能的弃用和删除
在MySQL以前的版本中,一个版本中的弃用(例如,5.7)意味着该特征可以在下一个主要/次要版本中被移除(例如,8.0)。随着创新版本的引入,将会有更多的主要/次要版本,因此,当弃用和删除发生时将会发生变化。
当一个特性或行为在一个版本中被弃用时(例如,9.2创新),该功能至少一年内不能删除(直到9.6创新)。这是为了给予用户在运行Innovation版本时有时间修改数据库部署。
请注意,LTS版本中没有删除。功能只能在第一个LTS版本中删除(和添加)(例如,8.4.0 LTS)但不是以后。
当我们过渡到新模型并向第一个8.x LTS版本移动时,预计弃用和删除会增加。
行为变化
除了创新版本中的新功能外,当代码被重构或MySQL被修改为更符合SQL标准时,行为也会发生变化(这在LTS版本中不会发生)。
行为更改可能会产生很大的影响,特别是在处理与应用程序相关的任何内容时,例如SQL语法、新保留字、查询执行甚至查询性能。行为更改可能需要应用程序更改,这对于我们的用户迁移来说可能是一项相当大的工作。
除了记录每个行为更改之外,为我们的用户提供必要的工具和配置设置非常重要,以便能够轻松地在版本之间进行升级和降级。根据行为改变的类型,将使用不同的方法。当我们介绍这些变化时,会有更多的细节。
长期支持的版本
大约每2年,一个次要版本将被指定为长期支持版本。此版本将提供5年的首选支持和3年的扩展支持,与以前支持的版本相同。这类似于MySQL 5.7和以前的版本。
LTS也将是主要版本的最后一个版本。下一个(创新)版本将增加它的主要版本。例如,如果MySQL 8.4.0是8.x LTS版本,那么MySQL 9.0将是下一个创新版本。
升级和降级
随着主要和次要创新版本以及每两年发布一次的LTS版本的增加,用户将有更多支持的版本可供选择。作为创新系列的采用者,需要经常更新以进行错误修复和安全补丁,这需要升级和降级策略。
让我们更深入地了解将支持的各种升级和降级场景。
LTS版本中的升级和降级
在LTS版本中,功能保持不变,数据格式不变。
因此:
- 就地升级和降级将是可能的。与MySQL 8.0.x版本(< 8.0.34)相比,这是一个改进,其中不可能降级,并且不建议通过跳过版本进行升级。
- InnoDB CLONE将在LTS版本中支持升级和降级。
需要更多的工作来完全过渡到这个版本,并将在8.0.34之后的版本中发布。
从一个LTS升级和降级到另一个LTS
- 可以从一个LTS版本迁移到下一个LTS版本,而无需执行升级创新版本的几个中间步骤。
- 升级可以通过就地升级、MySQL Shell Dump & Load和MySQL异步复制进行。
- 降级可以通过MySQL Shell Dump & Load和MySQL复制进行,其唯一目的是回滚正在进行的升级,更多信息如下。
创新版本之间的升级和降级
- 将支持从一个创新或LTS版本到未来创新版本的就地升级,直到下一个LTS版本。replication和dump & load也可以工作。
- 降级将需要逻辑转储和加载。这类似于MySQL 8.0.x(< 8.0.34)。
使用MySQL异步复制升级和降级
关键业务环境的升级通常使用MySQL异步复制完成,其中新版本环境被设置为当前版本的副本。这使得升级的停机时间几乎为零。
可以从LTS或创新版本复制到
- 下一个LTS版本
- 任何未来的创新版本,直到下一个LTS版本(LTS 8.4 → LTS 9.7,但不是LTS 8.4 → LTS 10.7)
如果在升级新版本后发生任何问题,支持复制回以前的版本是很重要的。因此,MySQL异步复制将能够复制到以前的版本。这种支持仅用于回滚目的,在新功能尚未使用的情况下,不应将其视为常规连续生产部署的一部分。
升级和降级支持列表
下面是各种支持的升级和降级方法的概述
升级
|
就地 |
克隆 |
异步复制 |
转储/加载 |
|
|---|---|---|---|---|
|
LTS 8.4 → LTS 9.7 |
✓ |
✗ |
✓ |
✓ |
|
LTS 8.4.11 → LTS 8.4.20 |
✓ |
✓ |
✓ |
✓ |
|
创新8.1 → 8.2 |
✓ |
✗ |
✓ |
✓ |
|
创新8.1 → 8.3 |
✓ |
✗ |
✓ |
✓ |
|
创新9.1 → LTS 9.7 |
✓ |
✗ |
✓ |
✓ |
|
LTS 8.4 → LTS 10.7 |
✗ |
✗ |
✗ |
✗ |
降级
|
就地 |
克隆 |
异步复制 |
转储/加载 |
|
|---|---|---|---|---|
|
LTS 8.4.20 → 8.4.11 |
✓ |
✓ |
✓ |
✓ |
|
LTS 9.7 → LTS 8.4 |
✗ |
✗ |
✓✮ |
✓✮ |
|
LTS 9.7 →创新9.6 |
✗ |
✗ |
✓✮ |
✓✮ |
|
LTS 9.7 →创新9.5 |
✗ |
✗ |
✓✮ |
✓✮ |
(✮)表示支持仅限于回滚目的。
结论部分
随着我们过渡到这种新模式,我们欢迎您与我们的社区渠道和支持团队合作。
您可以在mysql.com/downloads下载最新的MySQL版本,或使用http://edelivery.oracle.com/上的Oracle Software Delivery Cloud下载MySQL Enterprise二进制文件。
有关每个版本的详细信息,包括新功能,改进,错误修复和可能的重大更改,请查看MySQL发行说明。
除了8.0之外,MySQL HeatWave数据库服务现在还提供了最新的MySQL 8.1创新版本。这包括最新的功能,包括OLTP、OLAP、机器学习和Lakehouse。如需免费试用帐户,请访问oracle.com/mysql/free。
我们对这个新的版本控制模型将带来的机会感到兴奋,并热切期待您的反馈。我们可以让MySQL变得更好。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
[转帖]MySQL8.1来了:MySQL创新和长期支持(LTS)版本简介的更多相关文章
- Linux系统下祼机安装mysql8.0和docker mysql 8.0 性能差异对比~
环境准备 准备两台服务器环境,配置相同,分别安装Centos7,mysql8.0,docker mysql 8.0 准备测试代码 public class Chat { public static l ...
- MySQL 全文搜索支持, mysql 5.6.4支持Innodb的全文检索和类memcache的nosql支持
背景:搞个个人博客的全文搜索得用like啥的,现在mysql版本号已经大于5.6.4了也就支持了innodb的全文搜索了,刚查了下目前版本号都到MySQL Community Server 5.6.1 ...
- 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(四):安装MySQL数据库
基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django 基于Ubuntu Server 16.04 LTS版本安装和部署Djan ...
- Quartz.NET 3.0.7 + MySql 实现动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一)
原文:Quartz.NET 3.0.7 + MySql 实现动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一) 前端时间,接到领导任务,写了一个调度框架.今天决定把心路历程记 ...
- Mac卸载mysql并安装mysql升级到8.0.13版本
引言 今天mysql升级到8.0.13版本,遇到了很多问题,在此进行总结方便以后查看. 卸载mysql brew uninstall mysql sudo rm /usr/local/mysql su ...
- MySQL 数据库SQL语句——高阶版本2
MySQL 数据库SQL语句--高阶版本2 实验准备 数据库表配置: mysql -uroot -p show databases; create database train_ticket; use ...
- MySQL 数据库SQL语句——高阶版本1
MySQL 数据库SQL语句--高阶版本 实验准备,数据表配置 mysql -uroot -p show databases; create database train_ticket; use tr ...
- [转帖]mysql8.0忘记密码如何操作?
mysql8.0忘记密码如何操作? https://www.cnblogs.com/gspsuccess/p/11245314.html mark 一下 上次竟然不知道怎么弄. 很不幸,刚安装了MYS ...
- [转帖] “王者对战”之 MySQL 8 vs PostgreSQL 10
原贴地址:https://www.oschina.net/translate/showdown-mysql-8-vs-postgresql-10?lang=chs&page=2# 英文原版地址 ...
- 【pyhon】理想论坛单帖爬虫取得信息存入MySql数据库
代码: # 单帖爬虫,用于爬取理想论坛单个帖子得到发帖人,发帖时间和回帖时间并存入数据库,url例子见main函数 from bs4 import BeautifulSoup import reque ...
随机推荐
- linux内核initcall放置在各个section中函数执行流程
前言 linux以及嵌入式一些代码,我们看到core_initcall.device_initcall等等需要链接器分配各个section,并且在启动该模块时候执行.下面我们详细追溯一下执行过程. 作 ...
- CF650A Watchmen
首先解释一下题目里面的两个概念: 曼哈顿距离:即 \(|x_a - x_b| + |y_a - y_b|\) 欧几里得距离:即 \(\sqrt{(x_a - x_b) ^ 2 + (y_a - y_b ...
- LeetCode 分治篇(50、17)
50. Pow(x, n) 实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, ...
- Java 设置PDF文档过期时间(有效期)
有些文档具有一定时效性,需在规定时间段内才可阅读查看,针对此类文档,需要设置文档的过期日期.时间等.下面以Java示例演示为例如何给PDF文档设置过期时间.需使用PDF类库, Free Spire.P ...
- 实例讲解基于Sermant快速开发服务治理插件
本文分享自华为云社区<Sermant框架下的服务治理插件快速开发及使用指南>,作者: 华为云开源 . Sermant是基于Java字节码增强技术的云原生无代理服务网格,它具有非侵入.插件化 ...
- THOR:MindSpore 自研高阶优化器源码分析和实践应用
摘要:这篇文章跟大家分享下THOR的实践应用.THOR算法的部分内容当前已经在MindSpore中开源 本文分享自华为云社区<MindSpore 自研高阶优化器源码分析和实践应用>,原文作 ...
- AI为啥能读懂说话人的情感?
摘要:本文介绍了语音情感识别领域的发展现状,挑战,重点介绍了处理标注数据缺乏的问题. 本文分享自华为云社区<语音情感识别的应用和挑战>,作者:SSIL_SZT_ZS. 情感在人与人的交流中 ...
- 火山引擎DataLeap的Catalog系统搜索实践(三):Learning to rank与后续工作
Learning to rank Learning to rank主要分为数据收集,离线训练和在线预测三个部分.搜索系统是一个Data-driven system,因此火山引擎DataLeap的Cat ...
- Solon2 之基础:三、启动参数说明
启动参数,在应用启动后会被静态化(为了内部更高效的利用).比如,想通过体外扩展加载配置,是不能改掉它们的. 1.启动参数 启动参数 对应的应用配置 描述 --env solon.env 环境(可用于内 ...
- 如何利用CCXT交易数字货币合约
更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 对于币圈量化老司机来说,相信或多或少都有接触过ccxt这个接口,ccxt为我们提供了多交易所统一的标准格 ...