还没有升级MySQL版本到8.0+的朋友,是时候提起精神来了!因为接下来,相信不久就会面对“要不要进行老项目改造和迁移”之类的、“饱和式KPI”灵魂拷问。
还有不满三周的时间,MySQL5.7就要终结生命周期,光荣退休了。不止开发者们,就连云厂商们在最近几个月以来也纷纷推出了相继的应对策略。
MySQL5.7将于两周后迎来“终结”,MySQL8.0将于2026年4月终结。
来源:endoflife.date
首先,先看看Oracle怎么讲。Oracle通知10月将终止MySQL5.7的支持。
MySQL 系列发布及EOL时间 图源:Oracle
根据Oracle官网发布的博客,在接下来的几年里,MySQL版本控制将类似于下面的示例图。
来源:Oracle 官网
文章中解释道,Oracle 为 MySQL 提供了两个版本流: 创新版本和LTS版本。
创新版本类似于 MySQL 8.0 持续开发模型 (< 8.0.34),包括错误修复、安全补丁和新功能。对创新版本的支持仅限于下一个次要版本(创新或 LTS)。创新版本中的补丁发布是可能的,但发生的可能性较小。创新版本具有生产级质量,可以在生产环境中安全使用。
LTS 版本具有 5 年优先支持和 3 年扩展支持,与之前支持的版本相同。主要发布周期的最后一个版本将被指定为 LTS。(8.0 除外)。只能在第一个 LTS 版本(例如 8.4.0 LTS)中删除(和添加)功能,而以后则不能。
8.1 是第一个创新版本,8.0.34+ (LTS) 已过渡为仅修复错误,直到 2026 年 4 月 8.0 生命周期结束 (EOL)。2024 年 7 月左右,最后一个 8.x 版本最终将成为 LTS让用户从 8.0.x 迁移到 8.x LTS 版本。
未来的发布节奏已经公开:
当然,Oracle当然是想各位用户继续在MySQL的世界里升级打怪了。MySQL5.7反正我不维护了,要么升级到8.0,要么升级到Oracle Database。
其次,来看一下云厂商的动作,按照惯例,自然急忙制定延长服务的时间表了。
云厂商对于各大MySQL版本的支持截止时间 制表:51CTO技术栈
最先跟进的是AWS和Azure。微软 Azure 将会在 MySQL 5.7 EOL 之后,为其公有云用户提供延长的服务,最晚到 2025 年9月。
由上图可以看出,Azure Database for MySQL v5.7 - 灵活服务器的创建将于2024 年 4 月结束。但是注意:某些方案(例如副本创建、时间点恢复以及从 Azure Database for MySQL - 单一服务器或 Azure Database for MariaDB 迁移到 Azure Database for MySQL - 灵活服务器)将允许创建 MySQL 版本5.7 直至延长支持期结束。
而亚马逊,则除了推出类似的延长服务期之外,还给出了特别延长付费服务。最长可以延期3年到2027年2月底。
图源:AWS 官网
当然不论是亚马逊还是微软,当延长服务期结束后,MySQL 5.7 的去向也是一样的:要么升级到 MySQL 8,要么迁移到其他数据上吧。
再来看国内厂商,我们从阿里云官网上的通知查询到了MySQL 5.5和MySQL 5.6 维护截止时间分别为2021年2月28日和2024年2月5日。网上有流传阿里云 RDS MySQL5.7的维护截止时间是2024年的10月,但这一时间尚未得到官方证实。
同时,腾讯云、华为云方面也没有得到确切的停止维护的日期和延期服务时间。不过按照以往的惯例,至少也会有一年的延长期。
在全球关系型数据库市场中,MySQL 市场份额最高,达到 43.04%,排名第二的 Oracle 仅为16.76%。同时在 Shadowserver Foundation 于 2022 年 5 月份发布的一份全网 MySQL 扫描报告中,MySQL的不同版本份额占比如下:
数据来源:Shadowserver Foundation
MySQL 5.7 占比为 46.7%,同时早在 2021 年 10 月份就“退伍”的 MySQL 5.6 份额占比仍高达 30%。
也就是说,在一个老版本终结后的半年内,相当一部分企业和用户仍然没有及时升级到更新的版本或迁移到其它数据库上,其中的原因除了没有注意到终结的消息外,肯定还需要一定的升级和迁移时间和成本。
由此可以类比推测,MySQL 5.7 EOL后,同样会有很大一部分用户抓着MySQL 5.7不放手。
此外,不同行业对于此事的反应也是有所不同的,比如在国内的金融行业,大多数企业考虑迁移到有技术服务保障的国内数据库。
据调研,在使用 MySQL 开源数据库的金融企业中,MySQL 5.7 版本应用较广。所有部署 MySQL 的金融企业中,近六成企业选择 MySQL 5.7 版本作为其运行版本,近三成企业使用 MySQL5.7 版本占其 MySQL 总部署量的 80% 以上。
上述报告指出,71% 的企业已知晓 MySQL5.7 版本生命周期结束事件,其中88% 的企业已做出应对方案。所有应对方案中,超五成企业希望迁移到国内数据库,另有约三分之⼀企业将迁移到 MySQL8.0 版本。
而在电信行业,一部分企业甚至不知道 MySQL 5.7 EOL 的情况。部分企业表示将继续使用 MySQL5.7 版本。选择替代 MySQL5.7 时,迁移难度、改造成本与兼容性是电信企业考虑的重要因素。
竞技世界数据库专家、dbaplus 社群联合发起人杨建荣在知乎的帖子上公开了一份 2022 年调查的 MySQL5.7 使用情况,同样可以看出 9 家采用MySQL 5.7 的公司,7 家“暂无计划”,只有两家“准备大规模升级”。
来源:知乎
MySQL5.7 版本生命周期即将结束,由于缺少后续的开源社区技术支持,安全漏洞的修补维护也意味着停更,既然有着如此重要的风险摆在眼前,为何还会有这么多人不愿意升级/改造 MySQL 呢?
因为太难了,零故障、平滑/无感升级的成本极高。仅仅是版本升级,就会遇到下面这些问题需要多个部门协调解决。
来源:知乎
事实上,对于版本升级或者迁移改造而言,企业的决策者向来是有所审慎的。9月 21 日,由中国信通院上发布的《开源数据库生态发展研究报告》中也有提到替换 MySQL 5.7 时的顾虑点:
整体上看,这是一个关于“安全风险和改造成本如何取舍”的应用题。
2013年4月,MySQL5.7发布以来,在并行控制、并行复制等方面进行了大量的优化调整,5.7 版本正式 GA 于 2015 年 10 月份,这是 MySQL 到目前为止较为稳定的版本分支。
正是由于其良好的稳定性,许多企业已经使用其部署业务架构超过 10 年。
源:知乎
此次生命周期的停止,给技术决策者们留下很多选项:升级到 Oracle 寄予厚望的 MySQL 8,还是切换到一向嫌弃 MySQL 被收购后失去开源味道的MariaDB,后者彻底换到 PostgreSQL 或其他数据库?还是干脆托管给云数据库?又或者自研?
虽说这些可能看起来很多,但往往留给不同企业不同业务场景可选的并不多。
从这个角度上看,MySQL 5.7 不仅生得灿烂,而且死得绚烂,它给了许多企业重新思考和选择数据库选型的机会,一个让其他数据库抢占市场,完善性能,壮大自己的机会。