我最近进行了一次有趣的讨论,关于是否可以将 MariaDB 称为“mysql 服务器”,而实际上,Maria 与 MySQL 并非 100% 兼容。
据我所知,它最初是 MySQL 的 100% 直接替代分支,但在撰写本文时,MariaDB 10.5 和 MySQL 8.0 彼此并非 100% 兼容。
那么为什么像 Debian 这样的主要发行版会托管像“default-mysql-server”这样的软件包来安装 MariaDB-server 呢?通用的伞包不应该被称为“default-sql-server”吗?
答案1
通用的伞包不应该被称为“default-sql-server”吗?
当然不。 MariaDB、MySQL 远非唯一或“默认”的 SQL 服务器。有重要的自由软件竞争。
但在撰写本文时,MariaDB 10.5 和 MySQL 8.0 尚未 100% 兼容。
“不是100%兼容”并不是一个很好的理由。您的 xserver 软件包仍然称为 xserver,其中包含 xorg,它与大多数发行版以该名称提供的原始 XFree86 不 100% 兼容。
玛丽亚数据库是mysql 服务器的实现。句号。它的库、客户端和工具的名称中仍然带有 MySQL。
主要项目现在具有不兼容功能的事实主要集中在Oracle的GPL(“社区”)数据库版本与商业非免费版本之间的差异。 (GPL版本中的大部分技术变化都可以直接被MariaDB采用——这就是GPL的意义所在。)
由于无论如何都没有免费的 Linux 发行版可以提供商业版本,因此假设最初仅适用于 GPLv2 的 DBMS 以 MySQL 为名的延续是占主导地位的仅适用于 GPLv2 的分支 MariaDB,这在逻辑上是一致的。
答案2
MariaDB 拥有如此多使用名称“mysql”的元素的主要原因隐含在 MariaDB 基金会标题为“MariaDB 简介”的网页上,标题为“MariaDB Server”(URL:https://mariadb.org/en/#mariadb-server
具体来说:
直到 MariaDB 5.5 之前,MariaDB 服务器都遵循 MySQL 版本编号方案,旨在与 MySQL 的同一主版本实现直接兼容。
和
MariaDB Server 仍然保留了与 MySQL 的高水平兼容性,大多数使用 MySQL 的流行应用程序都将与 MariaDB 无缝协作。
和
MariaDB Server 非常重视不破坏用户的向后兼容性。
将其综合在一起:
- MariaDB 最初是作为 MySQL 的直接替代品,它需要支持为 MySQL 编写的命令和脚本。 (并行示例:Postfix 和 Exim 等 MTA 包含一个
sendmail
命令来支持为 Sendmail 创建的命令/脚本) - 与 MySQL 的兼容性仍然是一个高优先级,尽管今天它不再处于“直接替换”的水平。
- 重命名 MariaDB 中最初被命名为 MySQL 的“直接”替代品的部分可能会破坏与早期版本的 MariaDB 的向后兼容性,该项目试图避免这种情况。