通过C++访问MySQL

Der*_*erp 1 c++ mysql licensing

我想通过一个C++程序在MySQL服务器上运行查询,该程序将免费向公众发布,但不是根据GPL或任何其他开源许可证发布的.

我的第一个问题是我是否可以在我的应用程序中使用MySQL Connector/C++库.

如果没有,那么我可以使用哪些替代品?

小智 7

不幸的是,MySQL已将客户端库许可证从LGPL更改为GPL,这意味着任何与这些库静态或动态链接的应用程序都将成为衍生作品.因此,除非您为此购买许可证,否则不能在非FOSS应用程序中使用MySQL客户端库(用于访问MySQL服务器).这里的FOSS代表Free&Open Source.可以在此处找到Oracle(MySQL的所有者)认可的FOSS许可证列表.

但是,您可以使用ODBC访问MySQL而无需分发任何MySQL库等,因此客户端对此负责,并且必须决定是使用开源还是商业MySQL许可,这不会强制您购买任何许可或分发您的软件FOSS许可证由Oracle认可.阅读本文了解更多详情.

关于GPL的另一个有趣的部分是它声明链接到GPL库的应用程序是衍生作品.这意味着如果你要创建一个链接到MySQL客户端库并与MySQL服务器通信的简约开源应用程序,定义一个API接口并动态加载你的商业/闭源库,它只导出那个定义的API实现,你不会违反许可条款和条件,因为在这种情况下,开源应用程序将是闭源产品的用户.商业图形驱动程序(如NVidia)和音频编解码器(如MP3)使用相同的方法.