2026 年停止使用 MySQL,它已不再是真正的开源软件

本文信息来源:optimizedbyotto
如果你关心支持开源软件,并且在 2026 年仍在使用 MySQL,你应该像许多其他人一样改用 MariaDB。
2025 年 github.com/mysql/mysql-server 上的 git 提交数量显著下降。下面的截图显示了截至本文撰写时(2026 年 1 月)的 git 提交状态,这个情况对任何关心软件是否开源的人来说都应当令人警醒。
这并不令人惊讶——不应信任 Oracle 作为开源项目的托管方
当 Oracle 在 2009 年收购 Sun Microsystems 及其所拥有的 MySQL 时,欧洲佣金几乎阻止了这笔交易,理由是担心 Oracle 的目标只是扼杀竞争。交易最终完成,Oracle 承诺会继续维持 MySQL 不会将其废弃,但(毫不令人意外的是)Oracle 并未作为一个开源项目的良好管理者来对待 MySQL,围绕它的社区多年来一直在衰落。 所有开发都在闭门进行。 对外可见的错误跟踪系统并非 Oracle 员工实际用于 MySQL 开发的真实系统,少数尝试为 MySQL 贡献的人只看到他们的 Pull Request 和补丁提交被标记为已接收,几乎没有反馈,然后这些更改在下一个 MySQL 版本中可能出现也可能不出现,常被改写,而且 git 的作者/提交者字段中只有 Oracle 员工。真正的作者通常只在一篇博客中被小幅提及。 当我在 Amazon Web Services 担任负责 RDS MySQL 和 RDS MariaDB 的核心团队工程经理时,我监督我的工程师向 MySQL 和 MariaDB(后者由 MySQL 原作者 Michael Widenius 发起的分叉)提交代码。由于 Oracle 对他们贡献的接受态度极差,我组织内所有的软件开发者都不愿意向 MySQL 提交代码。
MariaDB 则完全相反,所有开发都实时在 github.com/mariadb/server 上进行,任何人都可以提交 Pull Request 并获得审查,所有错误都在 jira.mariadb.org 上公开讨论,诸如此类,就像人们对真正开源项目的期望一样。MySQL 仅在许可证上是开源的(GPL v2),但作为一个项目并非如此。
近年来 MySQL 的技术衰退
尽管并非一个称职的开源监管者,Oracle 仍应得到肯定,因为它维持了 MySQL 组织的运作,使其能够相对独立地存在,并在收购十多年后继续开发并发布新的 MySQL 版本。我不了解他们有多少客户,但我推测 MySQL 业务相当有利可图,对 Oracle 在财务上有用,至少在它没有获得太多可能威胁 Oracle 自家主力数据库业务的功能之前是如此。
我不清楚原因,或许是因为太多有才华的人离开了该组织,但从技术角度看,MySQL 自 2022 年起明显开始走下坡路。
当 MySQL 8.0.29 发布并将默认 ALTER TABLE 方法切换为以 就地 方式运行时,存在许多不适用的边缘情况,导致数据库崩溃并造成大量用户的数据损坏。直到一年后的 MySQL 8.0.32 这一问题才得到彻底修复。令许多用户恼火的是,Oracle 将 8.0 系列宣称为“常绿”,并在小版本中引入功能和变更,而不是像用户历史上期望的那样,仅在这些 x.y.Z 维护版本中进行漏洞修复和安全修补。
六年间没有发布新的主版本 MySQL。 在 2018 年的 MySQL 8.0 之后,直到 2023 年才发布了 MySQL 8.1,但那只是一个短期的预览版本。首个真正的新主版本 MySQL 8.4 LTS 于 2024 年发布。尽管这是一个新主版本,许多用户仍感失望,因为它几乎没有新增功能。
许多人还报告新版本 MySQL 性能下降,例如著名 MySQL 性能专家 Mark Callaghan 的基准测试显示,在写密集型工作负载下,MySQL 9.5 的吞吐量通常比 8.0 低约 15%。
由于较新版本的 MySQL 弃用许多功能,很多用户也抱怨在 MySQL 5.7->8.0 和 8.0->8.4 升级过程中“遭遇重大困难”。由于新特性寥寥无几,并且重点放在代码库清理和功能弃用上,许多人显然认为 Oracle 决定只是让 MySQL 勉强维持生存,并将所有新的相关特性(例如向量搜索)放入 Heatwave——Oracle 为 MySQL 客户提供的闭源且仅限云的服务。
随着显而易见 Oracle 并未在 MySQL 上投入,Percona 的 Peter Zaitsev 在 2024 年 6 月写下了 Oracle 终于要杀死 MySQL 了吗 。此时,根据 DB-Engines 的排名,MySQL 的人气也开始大幅下滑,这一趋势在 2026 年可能会加速。
2025 年 9 月, 新闻报道称 Oracle 正在裁员,MySQL 团队大幅缩减 。显然这对 MySQL 的未来并不乐观,Peter Zaitsev 已经在 11 月发布统计数据,显示最新的 MySQL 维护版本包含的错误修复比以前更少 。
开源不仅仅是意识形态:它对软件安全和主权有着非常现实的影响
有人说他们并不在乎 MySQL 是否真正开源,或者不在乎它在未来几年是否有前途,只要现在还能用就行。我担心这种想法的人承担着巨大的风险。数据库往往是软件应用栈中最关键的部分,任何运行上的缺陷或问题,更不用说安全问题,都会立即产生后果,“漠不关心”最终会让人被解雇或被起诉 。
在开源中,问题会公开讨论,问题越大,贡献修复的人和公司就越多。作为一种开发方法论,开源类似于科学方法,思想自由流动、不断被质疑,只有证据最充分的观点才能胜出。 不公开就意味着更多的不透明、更大的风险以及更多“相信我们吧,哥们”的态度。
在开源与封闭性方面的差异在 Oracle 处理安全问题的方式上非常明显。仅在 2025 年,MySQL 发布了 123 个 CVE 与安全问题相关,而 MariaDB 只有 8 个 。2025 年共有 117 个 CVE 仅影响 MySQL 而不影响 MariaDB。我并没有全部阅读,但通常这些 CVE 几乎不包含任何实际细节。举例来说,最近的一个 CVE-2025-53067 表示 “容易被利用的漏洞允许具有多协议网络访问权限的高权限攻击者危害 MySQL Server。” 并没有提供任何安全研究人员或审计员可以用来验证是否确实存在原始问题、是否已修复,或修复是否充分并完全缓解该问题的信息。MySQL 用户只能相信 Oracle 的说法,认为现在一切都已良好。以这种方式处理安全问题与其他开源项目形成了鲜明对比,后者在初始禁运期结束并且 CVE 公开后,会将所有安全问题及其代码修复完全公开供审查。
在真正的开源项目中看不到的各种形式的“劣化化”(enshittification)也在发生,MySQL 在软件、文档和网站上的一切都在推动用户停止使用开源版本,转而使用闭源的 MySQL 版本,尤其是 Heatwave。Heatwave 不仅是闭源的,还使 Oracle 完全控制客户的数据库内容。
当然,有人会说这就是 Oracle 赚钱并能够提供更好产品的方式。但 Reddit 和其他地方的报道表明,正在发生的更像是 Oracle 对最后剩余的 MySQL 客户进行榨取,这些客户被迫“付出越来越多却得到越来越少”。
有其他选择,迁移很容易,只要去做。
在 2010 年代中期,大部分 MySQL 用户已转向 MariaDB,特别是那些非常关心其数据库软件真正保持开源的人。其中包括像维基百科这样的重大部署,以及 Fedora 和 Debian 等 Linux 发行版。由于它是开源的且没有集中式的统计收集机构,因此无人确切知道市场份额的具体情况。不过有一些特定应用的统计数据,例如全球约有 57%的 WordPress 站点运行 MariaDB,而 MySQL 的份额为 42%。
对于运行经典 LAMP 堆栈 应用程序(例如 WordPress、Drupal、Mediawiki、Nextcloud 或 Magento)的人来说,将旧的 MySQL 数据库切换为 MariaDB 应该很简单。由于 MariaDB 是 MySQL 的一个分叉,并且在很大程度上与其向后兼容,替换 MySQL 为 MariaDB 可以在不更改任何现有连接器或数据库客户端的情况下完成,因为它们会像对待 MySQL 一样继续与 MariaDB 一起工作。
对于那些运行定制应用并且有权决定使用何种及如何更换数据库的人来说,有数十个成熟且运行良好的开源数据库可供选择,其中 PostgreSQL 是最受欢迎的通用数据库。然而,如果你的应用从一开始就是为 MySQL 构建的,切换到 PostgreSQL 可能需要大量工作,而 MySQL/MariaDB 的架构和存储引擎 InnoDB 在例如以高性能、可扩展性和可靠复制为首要任务的在线服务中仍可能具有优势 。对于快速且简便的迁移,MariaDB 可能是最佳选择。
从 MySQL 切换到 Percona Server 也非常容易,因为它紧跟 MySQL 的所有改动,只在少数由 Percona 完成的改进上有所偏离。然而,正因为它基本上只是 MySQL Server 的一个定制版本,所以对于那些试图完全摆脱对 Oracle 依赖的人来说,它并不是一个可行的长期解决方案。
还有几个与 MySQL 没有共同起源的开源数据库,但它们力求兼容 MySQL。因此大多数为 MySQL 构建的应用可以直接切换到使用它们,而无需重写 SQL 语句。其中一个数据库是 TiDB,它是从零开始专为高度可扩展的大型系统设计的,表现非常出色,甚至 Amazon 最新的数据库解决方案 DSQL 在很多理念上都借鉴了 TiDB。然而,TiDB 只有在较大的分布式部署中才能真正发挥优势,因此对于目前绝大多数使用 MySQL 的中小规模常规应用来说,最实际的解决方案可能是直接切换到 MariaDB,在大多数 Linux 发行版上只需运行 apt/dnf/brew install mariadb-server 即可安装。
无论你最终选择什么,只要不是 Oracle,你都会更好。


