This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-21. For the latest, interactive version please visit https://mariadb.com/kb/.

许可证 FAQ

在本文中,我们将解释MariaDB和MySQL服务器和客户端库许可证如何影响其他应用程序,以及您可以采取哪些步骤来遵守GPL或避免不得不修改应用程序以符合GPL。

下面的文本中我们谈论MariaDB。这些指南也适用于MySQL,至少适用于5.1.55,这是写作时最新的稳定版本。

MariaDB使用的许可证

MariaDB使用GPL许可证第2版进行分发和使用。

新的MariaDB客户端库CJavaODBC)在LGPL许可证第2.1版或更高版本下分发。LGPL许可证允许您自由地与任何应用程序一起分发这些MariaDB客户端库。

随MariaDB服务器提供的MariaDB客户端库也是GPL第2版,但具有FLOSS例外,允许您将其与大多数其他开源软件组合使用,而不会与其许可证冲突,即使该许可证与GPL不兼容。但是,我们建议您对于任何非GPL应用程序都使用新的客户端库

内部使用是免费的

GPL许可证仅影响您向其他方分发的代码。

组织内部使用完全免费,不受任何条件限制。不存在“内部分发”的事情,这将通过要求将其GPL化来限制您的代码使用。

连接到在后台运行MariaDB(或任何其他GPL软件)的远程服务也是免费的。

对于您拥有所有版权的内部程序,使用GPL软件基本上没有风险。您可以用自己的辩护来证明,如果软件作为分发的一部分变为GPL,作为版权持有人的您可以立即将其部分恢复到其原始版权。即使您已将其与GPL软件内部链接,也没有人有权要求您将其代码公开或重新分发给组织外部!

如果您的律师担心在您的组织内部不同法律实体之间链接GPL库的软件分发,您可以通过分别分发您的组件和GPL软件并让其他实体将它们组合来解决此问题。您也可以切换到使用新的LGPL客户端库

使用MariaDB连接器/客户端分发应用程序

本节适用于希望使用MariaDB客户端库代码(但不是服务器)与其应用程序一起分发的人。

自由软件/开源应用程序

如果您的应用程序是自由软件/开源软件并使用FLOSS例外中列出的许可证之一,则客户端库中的GPL不会影响您的应用程序。

在其他情况下,我们建议您使用新的LGPL客户端库

使用非GPL连接器

如果您正在使用非GPL连接器,则仅受该连接器的许可证约束。以下是一些例子:

上述连接器具有允许您自由使用它们的许可证,而不会受到GPL的约束。

使用数据库源独立框架

如果您正在使用允许您动态连接到不同RDBMS系统的框架,则由框架加载的任何GPL许可模块都不会影响应用程序。这样的框架包括:

在这种情况下,MySQL客户端库中的GPL不会影响您的应用程序,原因是GPL客户端支持标准接口,因此只是许多可选组件之一。您的应用程序可以轻松使用框架连接到除MariaDB或MySQL之外的RDBMS。

任何软件都可以连接到GPL v2许可的MySQL Connector/ODBC,而无需该软件成为GPL。这是因为在GPLed MySQL Connector/ODBC和您的软件之间有一款通用管理软件ODBC管理器。如果任何逻辑要求与MySQL Connector/ODBC接口的软件必须是GPL,则该逻辑也适用于ODBC管理器本身。然而,ODBC管理器在Windows和Linux上都不是GPL。因此,没有人可以为任何事情使用MySQL ODBC驱动程序。

使用MariaDB C客户端库

如果您的应用程序使用的许可证没有被FLOSS例外所覆盖,则应使用新的LGPL C客户端库

LGPL许可证允许您自由地将这些MariaDB客户端库与任何应用程序一起分发。如果您修改了客户端库,则需要发布新的源代码。

使用MariaDB/MySQL服务器分发专有应用程序

当您将应用程序与MariaDB或MySQL一起分发时,如果以下某些陈述适用,则您会受到(或被某些律师视为受到)GPL的约束:

  • 您正在直接使用来自MySQL的GPL代码链接到您的应用程序(例如MySQL GPL客户端库)。
  • 您的应用程序需要MariaDB服务器才能工作,如果没有MariaDB服务器,则不会启动或具有非常有限的功能。

通过使用前面提到的解决方案,可以避免客户端库的问题。

如果您的应用程序可以使用许多数据库(本地或通过数据库源无关框架之一),则可以自由地将MariaDB服务器与您的应用程序一起分发,而不受GPL的影响。原因是MariaDB只是软件分发中一个可选的独立组件,而GPL第2条明确允许这样做:

此外,将另一个与程序无关的作品(或基于该程序的作品)与该程序(或基于该程序的作品)仅聚集在存储或分发介质的一个卷上,不会使其他作品受到本许可证的约束。

您还可以选择从Oracle购买MySQL的许可证,以获得其他版权条款下的MySQL。如果您以后想使用MariaDB而不是MySQL,请确保您的许可协议允许您对MySQL代码进行更改!(这是您在所有情况下都应确保的事情,否则您可能会遇到Oracle不会修复的错误,您也不被允许修复,这可能会使MySQL软件对您无法使用!)

您可以从SkySQL申请在应用程序中使用MariaDB代码更改的权利。

法律声明

以上文本由Michael“Monty”Widenius编写,他不是律师,您不应将上述任何声明视为所有情况下的“终极真理”。另一方面,正是David和Monty共同决定使MySQL成为GPL,并公开宣布了这种许可证变更的意图,因此本文中的信息具有一定的价值。

如果您想获得有关此情况下GPL如何工作的第二意见,可以联系Software Freedom Law CenterFree Software Foundation。虽然双方都与本KB文章无关,但它们是您想了解有关GPL或LGPL的更多信息时可以转向的默认权威。

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.