mariadb
mysql
- 什么时候不需要开源代码?(绝大多数场景)
如果你只是在自己的服务器上运行 MySQL,通过程序(Java, Python, PHP 等)去连接它、存取数据,这叫**“使用”**。
- 个人网站、内部系统、SaaS 云服务:这些都不需要开源你的代码。
- 原因:你的代码和 MySQL 是独立的进程,通过网络协议通信,这不属于“派生作品”。
- 什么时候必须开源或给钱?(“分发”场景)
如果开发了一个软件,并打算卖给别人安装(比如卖给客户一套离线版管理系统),且你的安装包里集成了 MySQL 的动态链接库(Libmysql)或直接捆绑了 MySQL 程序。
- 方案 A(免费):你的软件也必须遵循 GPL 协议,也就是开源你的全部代码。
- 方案 B(花钱):你不想开源代码?那就必须向 Oracle 购买 MySQL 商业授权。这样 Oracle 就会豁免你的 GPL 义务。
- 如何在“分发”时避坑?
如果想卖闭源软件,又不想买 Oracle 的授权,业内通常有几种做法:
- 让客户自己装:你的软件不捆绑 MySQL。说明文档里写:“请用户自行安装 MySQL 或 MariaDB”。
- 切换到 MariaDB 或 PostgreSQL:这些数据库的客户端驱动协议(如 LGPL 或 BSD/MIT)更宽松,允许你开发闭源商业软件。
- 通过标准接口连接:使用像 ODBC 这种标准层,避免直接调用 MySQL 的底层库。