根据 Oracle 官方声明,MySQL5.7 将于本月(10 月)结束其生命周期(EOL, End Of Life)。这意味着 Oracle 将不再为 MySQL5.7 提供官方更新、错误修复或安全补丁。但具体的结束日期是什么时候呢?
网上有三种主流观点:
- 仅指定为 10 月,没有具体日期
- 10 月 21 日
- 10 月 31 日(月底)
1. 仅指定为 10 月,没有具体日期
这个信息主要来自 Oracle 官方文档。参考链接为 Oracle Lifetime Support Policy[1]。维基百科上的信息也仅精确到月份(Wikipedia MySQL Release History[2])。
这种说法虽然来自官方,但仅停留在月份,并没有具体到日期。更令人惊讶的是,这种官方说法甚至可能是不准确的,下文将详细解释。
2. 10 月 21 日
这个日期主要来自 endoflife.software[3]。
endoflife.software
很多人,包括国产 MySQL 系数据库 PingCAP 公司,曾误以为这是准确的日期。
PingCAP misconception
3. 10 月 31 日(月底)
这个信息则来源于 endoflife.date/mysql[4]。
endoflife.date
这个说法存在明显错误,因为这个网站将官方只精确到月份的 EOL 日期误解为月底。
另外,该网站的 "Released" 和 "Latest" 列的日期也存在错误。例如,MySQL 8.0.34 的实际发布日期是 2023-07-18,而不是网站上列出的 21 Jun 2023。
Release Note
这个错误的来源是对 GitHub 仓库的误解。Oracle 的开发流程并不是基于 GitHub 的;他们使用内部代码仓库进行开发,并在完成后才将代码同步到 GitHub,因此 GitHub 上的日期通常会滞后。
GitHub Date
最终结论:MySQL5.7 生命周期结束的具体日期
最终,我认为 MySQL5.7 的生命周期将于 10 月 31 日结束。这个日期碰巧与上述网站相符,但出于不同的原因。
如何确定?
为了确定这一点,我首先定义了软件生命周期结束日期的标准:软件发布了最后一个版本后,其生命周期即宣告结束。因此,要找出 MySQL5.7 的最后一个小版本的发布日期。
在这个定义下,可以解释前面我提及的 Oracle 官方给出的结束生命周期的月份信息甚至可能是不准确的。以 MySQL 5.6 为例,虽然官方声明该版本的 EOL 是 2021 年 2 月,但实际上 MySQL 5.6 的最后一个版本 5.6.51 发布日期是 2021-01-21。因此,根据我定义的软件生命周期结束日期的标准,MySQL 5.6 的实际 EOL 日期应为 2021-01-21,是 2021 年 1 月,而非官方所声称的 2021 年 2 月。
根据 Oracle 的发布记录,我们可以总结出以下几点:
- MySQL 遵循每季度发布一次的规则,即 1 月、4 月、7 月、和 10 月。
- 发布总是在月份的中下旬进行,而非上旬。
- 发布通常在美国时间的周二进行。
MySQL Release Pattern
今天(文章编写时)是 10 月 24 日,周二,且没有发布新版本,因此可以推测,MySQL5.7 的生命周期将于下周二,也就是 10 月 31 日结束。
因此,我最终的结论是:“10 月 31 日,MySQL5.7 EOL”。
参考资料
[1]
Oracle Lifetime Support Policy: https://www.oracle.com/us/support/library/lifetime-support-technology-069183.pdf
[2]
Wikipedia MySQL Release History: https://en.wikipedia.org/wiki/MySQL#Release_history
[3]
endoflife.software: https://endoflife.software/applications/databases/mysql
[4]
endoflife.date/mysql: https://endoflife.date/mysql