在 MySQL 开源协议中,引入了 LGPL(GNU Lesser General Public License)协议,以便更容易地将 MySQL 的客户端库集成到其他程序中去。这意味着能够使用 LGPL 协议开发的应用程序可以使用 MySQL 客户端库,而不需要开源整个应用程序的代码。
// 示例代码 #includeint main(int argc, char **argv) { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; conn = mysql_init(NULL); mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0); mysql_query(conn, "SELECT * FROM table"); res = mysql_store_result(conn); while ((row = mysql_fetch_row(res)) != NULL) { printf("%s %s \n", row[0], row[1]); } mysql_free_result(res); mysql_close(conn); return 0; }
以上是一个基本的使用 MySQL 客户端库进行查询的示例代码。在使用 MySQL 的 LGPL 版本时需要注意,MySQL 虽然使用 LGPL 协议,但是其依赖的一些库(例如 C++ 标准模板库)却不是 LGPL 的。因此,使用 LGPL 协议开发的应用程序使用了 MySQL 客户端库后,也需要遵守 LGPL 协议的规定,包括源码的共享和修改后的程序的重新发布等。