分析MySQL的授权许可
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,估计这种申请不是那么容易通过的。
可见,是否可以免费使用MySQL跟用户是否商业组织没有太大关系,主要还是看产品是不是GPL的、是否分发。
建议继续学习:
- MySQL数据库在实际应用一些方面的介绍 (阅读:35431)
- 我对技术方向的一些反思 (阅读:9876)
- Using MySQL as a NoSQL (阅读:5671)
- MySQL协议分析 (阅读:4686)
- 基于MySQL的高可用可扩展架构探讨 (阅读:3725)
- MySQL和MongoDB设计实例对比 (阅读:3635)
- Oracle or MySQL ? (阅读:3398)
- cacti 增加 Mysql 监控 (阅读:3326)
- 不使用MySQL数据库的五个给力理由 (阅读:3291)
- 为 MySQL 增加 HTTP/REST 客户端:MySQL UDF 函数 mysql-udf-http 1.0 发布 (阅读:3123)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:Heero's Blog 来源: Heero's Blog
- 标签: MySQL 授权
- 发布时间:2011-06-01 23:54:34
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 图书馆的世界纪录
- [54] 如何拿下简短的域名
- [54] android 开发入门
- [52] Go Reflect 性能
- [52] Oracle MTS模式下 进程地址与会话信
- [49] 【社会化设计】自我(self)部分――欢迎区
- [48] 读书笔记-壹百度:百度十年千倍的29条法则
- [41] 程序员技术练级攻略
- [35] 视觉调整-设计师 vs. 逻辑