前两天研究一下mysql的授权协议,迷惑,迷惑,很迷惑
说是GPL和商业协议双选,但是却没有明确的说明,什么时候,怎样用,才必须要商业。(尤其是client端的)其中:服务器是双重协议,客户端是GPL;客户端的协议似乎受其连接的服务器的协议影响,如果服务器是商业的,则客户端可不受GPL约束(此点不确定)
看了mysql官网的论坛里一些“官方人士”的回答,很官话的回答。(倒是看到了很多一针见血的问题:_))
留下我的一些研究所得(主要是当自己不想开源时,怎样可以免费用,比较俗了),希望对大家有所帮助:
1 服务器端,如果不修改其代码,不分发它,只是自己用,无需商业协议
example:
自己加一个网站(这个网站可以是盈利的),或者公司内部用,都可以免费用,因为我们是“用户”
2 客户端(指各种用来连接mysql服务器的连接库,且是mysql提供的)由于需要把mysql连接库和你的程序连接(link),所以你的代码受到GPL的约束,需要开源
有两种情况无需开源:
A 你使用的是JDBC或者ODBC之类的标准接口,且你用的SQL语句也是标准的;这样,也就是说,你的程序并没有要求必须使用mysql数据库,此时可以不受GPL约束
B 使用诸如PHP等一些特殊的,经由mysql允许的东西做的程序。好像叫做开源例外... (就是说,php写的程序可以闭源)
我的实情:
我要写一个c#的不开源的,使用mysql作为数据库的程序,又不想花钱。
服务器,这个好说,我只是使用,没关系。
客户端,由于官方的客户端是GPL的,我要么用ODBC写标准的程序,要么去寻找一个不是GPL的客户端(或者自己写一个)
看来,客户端成了大问题!
或者,我不用mysql的,经过一番研究,另有两个数据库映入眼帘:
PostgreSQL和FireBird,他们的协议都不排斥闭源
-------------------------------
小结一下
1 mysql的协议复杂,想免费,又想闭源,难啊
2 另有其他替代方案,也许更好
3 GPL果然强大,这就是“自由软件”和“开源软件”的区别了。由于种种问题,我们能否真正的做到“自由”,真正让它成为我们的信仰,仍需考虑啊!毕竟,比尔先生带来的“卖闭源代码”很有诱惑
4 mysql居然同时有两个协议,是不是有违“自由”的精神了?
-------------------------------
法律部分:
这只是我的个人看法,对由它带来的一切后果,我不负任何责任。
欢迎指正,共同进步
发表评论

