跳转到主要内容

在“MySQL 5权威指南”的摘录中概述MySQL开源许可选项。

MySQL最有趣的功能之一是许可证。 MySQL是一个开源项目。 也就是说,MySQL的完整源代码是免费提供的。 自2000年6月(即版本3.23.19)以来,GNU公共许可证(GPL)对MySQL有效。 因此,确保MySQL将在开源思想的意义上继续免费提供。 (对于MySQL的商业应用,除了GPL之外还有第二个商业许可证。稍后将详细介绍。)

 

关于GPL的权利和义务

开源通常被错误地解释为“没有成本”。确实如果GPL软件符合某些条件,则可以在不支付费用的情况下使用GPL软件。但是,开源思想更进一步:

  1. 由于源代码是免费提供的,当出现问题时,您不受软件供应商的支配。
  2. 出现问题时,您可以尝试自己修复问题或实现缺少的功能。此外,您可以向开发人员小组寻求帮助。
  3. 您可以确定程序代码已被许多开发人员读取,并且不包含任何令人讨厌的意外(例如所谓的后门,例如Interbase多年来一直使用的数据库系统,通过这种方式可以访问每个Interbase数据库。硬编码密码)。
  4. 您可以更改GPL产品,并确实销售产生的新程序。


在这个GPL优点列表的最后,有一些缺点(用于商业应用)。如果您希望使用GPL程序作为商业产品的基础,您必须再次使用GPL意义上的免费提供源代码,并进行更改。这很少是商业产品开发者希望做的事情。一般而言,从GPL软件衍生的每个程序都存在于GPL条款下。 (可以说,GPL是传播的。)

提示:有关开源概念,GPL全文和解释的更多信息,请访问以下地址:

http://www.gnu.org/copyleft/gpl.html
http://www.opensource.org/osd.html

 

使用MySQL和开源许可证


以下列表收集了在GPL意义上可以自由使用MySQL的不同情况:

  • 如果应用程序是本地开发的而不是商业用途,则可以免费使用MySQL。只有当所得到的解决方案被出售给客户时,许可问题才会发挥作用。此规则在MySQL主页上表示如下:免费用于那些从不复制,修改或分发的人。
  • MySQL可以在网站中自由使用。如果您还开发了一个PHP应用程序并将其与您的Internet服务提供商一起安装,那么您就不必在GPL意义上使您的PHP代码免费提供。
  • 同样,互联网服务提供商可以向其客户提供MySQL,而无需支付MySQL许可费。 (由于MySQL仅在ISP计算机上运行,​​因此该应用程序被视为内部。)
  • 最后,MySQL许可证可以免费用于所有根据GPL或类似免费许可证运行的项目。 (如果您已经为Linux开发了一个新的免费电子邮件客户端,并希望将电子邮件存储在MySQL数据库中,您可以毫不费力地这样做。)


使用MySQL和商业许可证


在GPL意义上,禁止以下用途:

  • 您不得更改或扩展MySQL(即数据库服务器)或销售由此创建的新版本或产品,而无需同时免费提供更改的源代码。因此,如果您不准备在GPL意义上向MySQL社区免费提供扩展,则禁止您开发基于MySQL的新数据库系统。
  • 禁止开发商业产品,例如bookkeeping 程序,该产品以MySQL作为数据库,而不是在开源意义上提供代码。如果您作为商业开发人员不接受GPL的限制,那么您可以将您的产品(程序)与商业MySQL许可证一起出售。这可以证明是值得的,因为即使您不能或不愿意在GPL意义上提供您的代码,MySQL仍然可供您使用。
  • MySQL公司以两种形式为消费者(即其数据库应用程序的购买者)提供商业许可:
    • MySQL网络:在这里买方获得运行一个支持InnoDB一年的MySQL Pro认证服务器的权利。 (无论CPU数量多少,服务器都被视为一台计算机。)可以访问服务器的客户端数量没有限制。 MySQL网络程序还包含对特殊编译服务器版本的访问权限,这些版本据称特别稳定,电子邮件和电话支持以及各种其他服务。在程序期间,MySQL服务器的更新(即使是版本4.0和5.0等)也是免费的。
    • 经典商业MySQL许可证:自MySQL网络程序引入以来,曾经常见的普通许可证很难找到。 (使用以下列表的最后一个链接。)经典MySQL许可证没有时间限制,但仅限于特定的主体服务器版本。 (如果您拥有4.0版的许可证,则必须申请5.0版的新许可证。)与商业数据库系统相比,成本相当合理(目前没有InnoDB支持的许可证为295美元,InnoDB支持许可证为595美元) ,从10个许可开始大幅减少)。
  • MySQL网络程序的优点在于附加服务和免费更新选项。另一方面,经典许可证更便宜,一旦安装了MySQL服务器并且应该运行。

提示:有关MySQL许可的更多信息,请访问以下站点:
https://www.mysql.com/company/legal/licensing/
https://www.mysql.com/network/
https://order.mysql.com/ https://shop.mysql.com/?sub=vt&id=software

 

客户端库的商业许可证(连接器/ ODBC,连接器/ J等)


除了实际的MySQL服务器之外,MySQL公司还提供了开发应用程序所需的客户端库(还有一些在MySQL公司之外开发的驱动程序,例如PHP驱动程序):

C-API:C编程的应用程序接口
Connector / C ++:用于C ++编程的库
Connector / J:用于Java编程的JDBC驱动程序
Connector / MXJ:用于Java编程的J2EE MBean驱动程序
Connector / NET:.NET驱动程序主要用于Windows下的编程
Connector / ODB:用于Windows下所有编程的ODBC驱动程序

与MySQL一样,这些驱动程序在GPL下可用。许多MySQL客户端库,例如JDBC驱动程序Connector / J,曾经在LGPL(较小的Gnu公共许可证)下的早期版本中可用,这意味着对商业应用程序的限制较少。然而,情况发生了变化,版本4.0。

如果您希望在商业应用程序中使用这些驱动程序,则以下规则生效:如果MySQL客户端程序访问MySQL许可的服务器,则此服务器许可证对客户端库有效。因此,通常不必获取使用客户端库的许可证,因为客户端库自动包含在服务器许可证中。

但是,如果您开发和销售商业程序但不与MySQL一起交付并将MySQL服务器及其许可的安装留给客户,那么您必须获得程序中使用的客户端库的许可。

MySQL公司将客户端库的显式许可视为例外,因为通常,服务器是许可的。客户端库的商业许可实际上只是对MySQL公司商业利益的保护。他们希望避免商业开发人员仅仅通过不提供MySQL服务器就必须获得商业许可的情况。然后,客户从互联网上加载MySQL服务器的GPL版本,并相信所有这些都适合全世界。在这种情况下,MySQL公司将不会收到任何商业MySQL产品的开发。

 

PHP项目的客户端许可证,F(L)OSS异常


自MySQL 4.0以来,客户端库的GPL许可证导致了其他一些开源项目的问题。例如,PHP项目不是从属于GPL,而是从属于另一个开源许可证,该许可证更加自由,并且对商业应用程序的限制较少。如果PHP要在GPL下提供MySQL客户端库,那么GPL必须适用于整个PHP项目。 PHP开发人员对此并不满意。因此,MySQL定义了一个异常,允许PHP项目使MySQL客户端库成为PHP的一部分。

对于不使用GPL许可证的其他开源项目,MySQL已定义了FLOSS或FOSS许可证例外。 FLOSS代表Free / Libre和开源软件。 (在MySQL网站上,例外通常缩写为FOSS。)允许在FOSS例外的许可下存在的开源项目将MySQL客户端库集成到他们的代码中,而不受GPL限制的影响。有关这些许可证例外的更多详细信息,请访问:
https://www.mysql.com/company/legal/licensing/faq.html
https://www.mysql.com/company/legal/licensing/foss-exception.html

Red Hat长期以来一直认为这些许可证例外情况不够广泛。因此,Linux发行版Red Hat Enterprise(RHEL)和Fedora Core多年来都包含了过时的MySQL 3.23.n软件包。红帽企业4(2005年2月)和Fedora Core 4(2005年4月)发生了变化。这两个发行版都包含MySQL 4.1,它目前是MySQL最稳定的版本。

 

原文 :https://searchitchannel.techtarget.com/feature/Using-MySQL-licensing-Open-source-license-vs-commercial-license

本文:http://pub.intelligentx.net/using-mysql-licensing-open-source-license-vs-commercial-license

讨论: 请加入知识星球【首席架构师圈】

知识星球
 
微信公众号
 
视频号