WordPress 提议明确 MySQL 与 MariaDB 数据库支持政策
X-post: Proposal: Clarifying Core’s Database Support Policy
WordPress 社区提议明确核心对 MySQL 与 MariaDB 的支持政策,仅推荐 LTS 版本,并将创新版本和 rolling GA 版本排除在生产环境推荐范围之外。文中援引截至 June 18, 2025 的数据称,超过 37% 的 WordPress 站点仍在使用已停止维护和安全更新的 EOL 数据库版本。
文章用当前使用数据梳理 MySQL 与 MariaDB 的发布模型,并提出只推荐 LTS 版本、区分生产环境支持范围的方案。
TL;DR 超过 37% 的 WordPress 网站正在运行已到达生命周期终点(EOL)且不再获得维护或安全更新的数据库软件版本。为推动更广泛地采用安全且受支持的数据库版本,WordPress 应明确规定,只有 MySQL MySQL 是一种关系型数据库管理系统。数据库是结构化的数据集合,用于存储内容、配置和其他选项。https://www.mysql.com 和 MariaDB 的 LTS 版本才正式受支持,排除生命周期较短或无法保证向后兼容的版本。
作为一个社区,我们经常倡导努力将软件和工具更新至最新版本。这通常会以要求用户升级 PHP WordPress 主要基于其架构构建所用的 Web 脚本语言。WordPress 要求 PHP 7.4 或更高版本 的形式呈现,也会涉及贡献者使用 Node.js 和 npm 等工具。数据库软件对网站健康同样重要,但历史上受到的关注远少于前者。
自 WordPress 早期以来,受支持的数据库类型所采用的发布模式已经发生了很大变化。因此,项目需要更新其官方政策,以确保清晰明确。更清晰的政策有助于人们更广泛地了解维护 WordPress 网站的期望和要求。
但在介绍拟议的变更之前,让我们先定义各种发布类型,并在概述几个可供讨论的事项之前考察当前的使用数据。
注意:如果你已经熟悉 MariaDB 和 MySQL 的发布模式,可以直接跳到本文的提案部分。
受支持的数据库软件
目前,正式支持用于运行 WordPress 的数据库软件有两种:MySQL 和 MariaDB。虽然 Playground 确实由 SQLite 提供支持,但标准版 WordPress 安装目前尚不支持 SQLite,除非安装该功能插件;该插件正在积极开发和测试中。
发布类型
两个软件项目都多次更改了用于引用版本的术语,导致表述混乱且不一致。为清晰起见,以下是与 MySQL 和 MariaDB 版本发布相关的不同术语。
注意:下文中的所有星号(*)均表示已到达生命周期终点(EOL)且上游不再支持的版本。此外,EOL 并不总等于“不受 WordPress 支持”(稍后将对此作进一步说明)。
长期支持(LTS)
两个项目都会发布 LTS 版本。这些是实际使用中最常见的版本。首次发布后,它们会获得 5 年的积极支持。首次发布后,数据格式不会更改,不会引入新功能,也不会移除功能。
MariaDB 旨在每年发布一个新的 LTS 版本,而 MySQL 则每 2 年发布一个新的 LTS 版本(从 8.4 开始)。迄今为止,被标记为 LTS 的版本如下:
| 版本 | 项目 | 首次发布 | EOL 日期 |
|---|---|---|---|
| 8.4 | MySQL | April 30, 2024 | April 2032 |
| 8.0 | MySQL | April 19, 2018 | April 2026 |
| 11.8 | MariaDB | June 5, 2025 | June 2030 |
| 11.4 | MariaDB | November 22, 2024 | May 29, 2029 |
| 10.11 | MariaDB | February 16, 2023 | February 16, 2028 |
| 10.6 | MariaDB | July 6, 2021 | July 6, 2026 |
| 10.5* | MariaDB | June 24, 2020 | June 24, 2025 |
| 10.4* | MariaDB | June 18, 2019 | June 18, 2024 |
以下版本曾被视为 LTS 版本,但并未明确标注为 LTS:
| 版本 | 项目 | 初始发布日期 | EOL 日期 |
|---|---|---|---|
| 5.7* | MySQL | 2015 年 10 月 21 日 | 2023 年 10 月 21 日 |
| 5.6* | MySQL | 2013 年 2 月 5 日 | 2021 年 2 月 5 日 |
| 5.5* | MySQL | 2010 年 12 月 3 日 | 2018 年 12 月 3 日 |
| 5.1* | MySQL | 2008 年 11 月 14 日 | 2013 年 12 月 31 日 |
创新版本
尽管两个项目都使用这一分类,但只有 MySQL 项目目前实际按照本节所述方式使用它(有关 MariaDB 当前如何使用该名称,请参阅下一节)。创新版本旨在让用户提前获得新功能和改进,无需等待完整的 2 年即可发布下一个 MySQL LTS 版本。
新的创新版本包含以下类型的变更:
- 计划在下一个 LTS 中推出的新功能
- 安全修复
- 错误修复
- 新的弃用项
- 移除功能
- 行为变更。
这些版本已正式发布,可用于生产环境。它们每季度发布一次(每 3-4 个月一次)。当下一个创新版本发布时,上一版本将不再受支持,包括安全修复在内。由于每个创新版本的生命周期极短,必须持续关注并定期升级,才能继续获得支持和安全保障。
以下是 MySQL 创新版本的列表。
| 版本 | 初始发布日期 | EOL 日期 |
|---|---|---|
| 9.3 | 2024 年 4 月 15 日 | 2025 年 7 月 |
| 9.2* | 2025 年 1 月 21 日 | 2025 年 4 月 15 日 |
| 9.1* | 2024 年 10 月 14 日 | 2025 年 1 月 21 日 |
| 9.0* | 2024 年 7 月 1 日 | 2024 年 10 月 15 日 |
| 8.3* | 2024 年 1 月 16 日 | 2024 年 7 月 1 日 |
| 8.2* | 2023 年 10 月 25 日 | 2024 年 1 月 16 日 |
| 8.1* | 2023 年 7 月 18 日 | 2023 年 10 月 25 日 |
MariaDB 使用此标签大约 2 年。在此期间,他们也会每季度发布一个新的创新版本。不过,其创新版本在首次正式发布后会继续获得 1 年的支持。这些版本与 MySQL 的另一个不同之处在于,使用时建议保持谨慎。截至本文发布日期,所有 MariaDB 创新版本均已到达 EOL。
| 版本 | 初始发布日期 | EOL 日期 |
|---|---|---|
| 11.2* | 2023 年 11 月 21 日 | 2024 年 11 月 21 日 |
| 11.1* | 2023 年 8 月 21 日 | 2024 年 8 月 21 日 |
| 11.0* | 2023 年 6 月 7 日 | 2024 年 6 月 6 日 |
| 10.10* | 2022 年 11 月 17 日 | 2023 年 11 月 14 日 |
| 10.9* | 2022 年 8 月 22 日 | 2023 年 8 月 22 日 |
| 10.8* | 2022 年 5 月 21 日 | 2023 年 5 月 20 日 |
| 10.7* | 2022 年 2 月 14 日 | 2023 年 2 月 9 日 |
滚动 GA(仅限 MariaDB)
尽管两者在某些方面相似,但 MariaDB 现在已用滚动 GA 版本取代创新版本。滚动 GA 版本每季度发布一次(3-4 个月一次),并且不会收到任何 patch 一种特殊的文本文件,通过标识新增、移除和修改的文件及行来描述代码变更。它也可以称为 diff。补丁可以应用到代码库中以供测试。 版本(GA 版本为最终版本)。一旦新的滚动版本发布,上一滚动版本的所有支持都会终止。
“创新版本”这一术语仍在使用,但现在指的是每个滚动版本的预览版(X.Y.0)和 RC 版本发布周期中的最后几个阶段之一,表示该版本有可能成为面向公众的最终版本。另请参阅 alpha(beta)。(X.Y.1)预发布版本。滚动 GA 版本旨在用于生产环境,而创新版本并非如此。
| 滚动版本 | 初始发布日期 | EOL 日期 |
|---|---|---|
12.1(当前处于 preview 创新版本) | 待定 | |
12.0(当前为 RC 创新版本) | 待定 | |
| 11.7* | 2025 年 2 月 13 日 | 2025 年 5 月 12 日 |
| 11.6* | 2024 年 11 月 22 日 | 2025 年 2 月 13 日 |
| 11.5* | 2024 年 8 月 15 日 | 2024 年 11 月 21 日 |
| 11.3* | 2024 年 2 月 19 日 | 2024 年 5 月 16 日 |
主要版本 以版本号前两位数字(3.6)标识的版本,是完整发布周期和功能开发的重点。WordPress 的主要版本采用十进制递增方式,因此 2.8、2.9、3.0 和 3.1 在范围上是连续且可比较的。
MySQL 对主要版本的称呼方式与 WordPress 相同(X.(Y+1))。
对 MariaDB 而言,这一术语在不同时期有着不同的含义。
| 10.3 及更早版本 | X.(Y+1) | 每个新版本 |
| 10.4-11.2 | X.(Y+1) | 由于存在二进制不兼容性和新增功能,每个版本都被视为主要版本。LTS 或短期版本是更常用的描述方式,因为它们表示支持期限(类似于 WordPress)。 |
如今 *(>= 11.3) | (X+1).0 | 仅当第一位数字发生变化时(类似于 PHP)。 |
虽然当时还不存在 LTS 这一 designation,但 10.3 及更早版本也以类似方式处理。
- 支持 3-5 年(有时更长)
- 提供错误修复和安全更新
- 次要(
X.Y.(Z+1))版本有时也会包含新功能,但始终会保持兼容性。
所有 MariaDB 主要版本 <= 10.3 均已结束生命周期(EOL)。为完整起见,列出如下:
MariaDB 主要版本 <= 10.3 | 首次发布日期 | EOL 日期 |
|---|---|---|
| 10.3* | May 25, 2018 | May 25, 2023 |
| 10.2* | May 23, 2017 | May 23, 2022 |
| 10.1* | October 17, 2015 | October 17, 2020 |
| 10.0* | March 31, 2014 | March 31, 2019 |
| 5.5* | April 11, 2012 | April 11, 2020 |
| 5.3* | February 29, 2012 | March 1, 2017 |
| 5.2* | November 10, 2010 | November 10, 2015 |
| 5.1* | February 1, 2010 | February 1, 2015 |
虽然一些在线资源在这些版本旁标有 LTS 标签,但它们从未被正式如此标注。
短期版本(仅限 MariaDB)
这一术语后来被创新版本取代。除上述创新版本中列出的 MariaDB 版本外,这也适用于 MariaDB 10.4。截至本文发布日期,所有短期版本均已结束生命周期(EOL)。
当前数据库使用数据
以下是截至 2025 年 6 月 18 日 WordPress.org Stats 页面上的使用数据,以几种不同方式进行汇总:
按软件划分
| 版本 | 使用量 |
|---|---|
| MariaDB – 所有版本 | 52.8% |
| MySQL – 所有版本 | 47.2% |
按版本类型划分
| 发布类型 | 使用量 |
|---|---|
| MariaDB LTS(包括没有正式 LTS designation 的旧主要版本) | 51.17% |
| MySQL LTS(包括没有 LTS designation 的旧主要版本) | 46.74% |
| MariaDB 创新/短期/滚动版本 | 1.52% |
| MySQL 创新版本 | 0.07% |
| 其他 | 0.5% |
按支持状态划分
| 支持状态 | 使用量 |
|---|---|
| EOL 版本(MariaDB) | 11.43% |
| EOL 版本(MySQL) | 26.01% |
| 受支持(MariaDB) | 41.56% |
| 受支持(MySQL) | 21.05% |
观察结果
使用数据中有一些值得注意的情况。
- 截至 2025 年 3 月,MariaDB 所支持的 WordPress 站点数量现已超过 MySQL。这一点尤其引人注目,因为截至 2024 年 1 月,两者的占比约为 63%/37%,当时 MySQL 占优。许可成本上涨以及 2023 年和 2024 年广泛使用的发行版发生变化,很可能是推动这一激增的重要原因。
- 超过 37% 的 WordPress 站点正在运行已结束生命周期、不再获得维护或安全更新的数据库软件版本。
- 所有创新/短期/滚动版本中,采用率最高的是 MariaDB 11.3,达到 0.15%。
- 在任何时间点,其他创新/短期/滚动版本的采用率都未曾超过 0.10%。
WordPress 中数据库支持的当前状态
尽管 MySQL 和 MariaDB 采用不同的发布模式,并且会以不同的方式、非按顺序地停止支持,但 WordPress 的支持策略非常明确。截至本文发布之日,支持策略如下:
- 推荐:MySQL >= 8.0 或 MariaDB >= 10.6
- 必需:MySQL 或 MariaDB >= 5.5.5
几点说明:
- MariaDB 10.5 已于 6 月 24 日进入 EOL。推荐版本已于 2025 年 6 月 18 日更新为 >= 10.6(参见 #60319 和 #meta-8013)。
- 最低必需版本上次提升是在 2023 年末(参见 [57173])。
目前所述策略缺乏关于支持哪些发布类型的任何指导。如上所示,情况复杂且令人费解。该策略应适当扩展,以涵盖发布类型,而不仅仅是版本。
提案:明确受支持的发布类型
尽管创新版本被称为生产级版本,但考虑到大多数 WordPress 站点,它们仍存在若干缺点。
- 创新/滚动发布中包含的功能和变更被视为稳定,但在未来的发布中仍可能被修改,甚至完全移除。在纳入 LTS 版本之前,任何功能都不能视为受支持。
- 这些版本生命周期短暂,因此在发布时很难确保与 WordPress 的兼容性。根据发布时间的重叠情况,两个(或更多)创新/滚动版本可能会在主要的 WordPress 版本之间发布。
- 其极短的生命周期可能导致大量站点运行不安全的版本。
- 更新数据库软件通常取决于站点所有者无法控制的因素(等待服务器发行版更新并通过你的托管服务提供、平台兼容性限制、合规/许可要求等)。
- 对于这两个项目而言,更新这些发布类型都很复杂。更新必须按顺序进行。例如,不支持从 9.1 升级到 9.3(必须先将
9.1更新为9.2,然后才能更新为9.3)。升级到下一个 LTS 时则无需遵循此要求。 - 过去两年中,即使合并不同数据库类型的数量来看,这些发布类型的使用率也不高。
- 由于这些版本中的变更不保证向后兼容,承诺对这些版本提供完整兼容支持并不是合理利用贡献者的时间,而且可能导致代码更难维护。
对数据库建议的变更
本提案建议按如下方式更新运行 WordPress 的建议:
- 保持不变:应继续将上游仍在积极支持的最旧 LTS 版本作为推荐的最低版本。
- 在 Requirements 页面、Core Core 是一组运行 WordPress 所需的软件。Core 开发团队负责构建 WordPress。/Hosting/Support/Other? Handbooks 中添加:明确不建议生产站点使用创新版本和滚动 GA 版本。
- 在 Hosting Handbook 中添加:明确建议托管公司不要将 Innovation 和 Rolling GA 版本作为新站点的默认版本。
WordPress 的 PHPUnit 测试工作流目前使用最新的 MySQL Innovation 版本和 MariaDB rolling GA 版本运行测试套件。这种做法有助于让贡献者意识到潜在的兼容性问题和不兼容变更,以便在下一个 LTS 版本之前解决这些问题。这项做法将继续沿用。
因此,可以合理预期 WordPress 在运行这些版本时问题极少(如果有的话)。但这并无保证,因为贡献者必须权衡为兼容性而进行更改的收益,毕竟该功能在下一个 LTS 版本发布前发生更改或被移除的可能性并非为零。
由于 Innovation 和 rolling GA 版本从未获得支持,因此在考虑更改运行 WordPress 所需的 MariaDB/MySQL 最低版本时,只有 LTS 版本才符合新的最低版本条件。
总而言之,用户可以自由运行 Innovation 和 rolling GA 版本,但需自行承担风险。
其他考量事项
作为其中一部分,还应探索进一步教育和赋能用户的方法。
- 是否应扩展
servehappy,在用户的网站运行时使用过时或不受支持的 MariaDB/MySQL 版本时向其显示仪表板通知(见 #63634)? - Site Health 中的数据库检查能否提供更多上下文,用于检测 Innovation/rolling GA 版本,并说明为什么用户应考虑改用 LTS 版本?
- 能否增强 WP-CLI WP-CLI 是 WordPress 的命令行界面,用于以编程方式执行管理和开发任务。项目页面为 http://wp-cli.org/ https://make.wordpress.org/cli/,以便就这些高风险发布类型提供恰当建议?
- 是否需要更改任何 meta Meta 是一个指代群体内部运作机制的术语。对我们而言,它是指负责 WordCamp Central 和 Make WordPress 等内部 WordPress 网站的团队。,以更好地告知网站这些发布类型未获得明确支持?
- 与自动更新相关的类是否需要任何更改?
共同协作
可靠且受支持的数据库软件是 WordPress 网站性能、安全性和持久发展的基础。长期以来,推动主机和网站所有者进行升级的工作一直较为有限,且优先级也不一致。明确 WordPress 支持并兼容的数据库发布类型,是迈出的重要第一步。它使贡献者、主机和网站所有者能够转向更安全、更可持续的 MariaDB 和 MySQL 版本。
感谢 @johnbillion、@flixos90、@l1nuxjedi,以及 @annezazu 协助进行同行评审。
#database、#mariadb、#mysql、#site-health
来源:Make WordPress Security(安全) · https://make.wordpress.org/security/2025/06/28/xpost-proposal-clarifying-cores-database-support-policy/
部分链接为推广/关联链接。