MysqL是开源软件,但开源不意味着免费,开源软件的使用应遵循该软件提供的使用授权许可。MysqL的授权许可是英文的,而且一直以来没有权威的中文译本,所以很多人都不清楚其中的细节。
最近我在做一些ASP.NET+MysqL的应用,特地对MysqL的授权许可进行了研究。
使用MysqL作为数据库的应用是否会“被GPL”
MysqL开源软件(包括MysqL社区版数据库服务器、驱动程序和链接库等)是在GPL许可下提供的。GPL(General Public License)是一种开源许可,其大概的内容是:只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品也必须采用GPL协议,即必须也开源。
应用程序是否也必须采用GPL进行开源,是由如何去使用MysqL决定的。如果把MysqL数据库内嵌到应用程序中,成为了应用程序内部的一部分,则整个应用程序都必须遵守GPL的规定。而对于大多数Web应用,数据库并不是跟应用程序绑在一起的,数据库跟应用程序是产品间相互协作的关系,这种情况就不在GPL的约束范围之内。
先别高兴地太早,即使应用程序跟MysqL是相互独立的,但要连接到MysqL,必须使用特定的驱动程序(Driver)或连接器(Connector),一般又将其统称为客户端类库。这些类库基本上是由MysqL在GPL许可下提供的,而且不可避免地会成为应用程序的一部分。这样一来,我们的应用程序还是会“被GPL”吗?事实上,MysqL还准备了一份专门针对客户端类库的《FOSS许可例外》,其大概内容是:只要应用程序中没有使用其他在GPL许可下的开源产品,那么此应用程序就可以采用“FOSS许可列表(包含MIT、BSD、LGPL等常用开源许可)”中的协议进行开源。但是,如果应用程序不是开源的,而且需要进行分发,就必须购买商业许可了。
另外,GPL只限制了对外分发的软件,也就是说,如果该软件只在内部使用,无论开源不开源都管不了你。
是否可以免费使用MysqL
根据MysqL官方的商业许可的相关说明,在两种情况下,可以免费使用MysqL:
应用程序是在GPL许可下发布的; 应用程序不用于分发。非营利组织可以申请免费商业许可,但MysqL表示会carefully considered,估计这种申请不是那么容易通过的。
原文链接:https://www.f2er.com/mysql/530282.html