MySQL 8.0 参考手册  / 第 29 章连接器和 API  /  23.6 libmysqld,嵌入式 MySQL 服务器库

23.6 libmysqld,嵌入式 MySQL 服务器库

嵌入式 MySQL 服务器库使得在客户端应用程序中运行功能齐全的 MySQL 服务器成为可能。主要的好处是提高了嵌入式应用程序的速度和更简单的管理。

嵌入式服务器库基于 MySQL 的客户端/服务器版本,用 C/C++ 编写。因此,嵌入式服务器也是用 C/C++ 编写的。没有其他语言版本的嵌入式服务器。

嵌入式 MySQL 版本和客户端/服务器版本的 API 是相同的。要更改线程应用程序以使用嵌入式库,您通常只需添加对以下函数的调用。

表 23.2 MySQL 嵌入式服务器库函数

功能

什么时候打电话

mysql_library_init()

在调用任何其他 MySQL 函数之前调用它,最好是在main()函数的早期。

mysql_library_end()

在程序退出之前调用它。

mysql_thread_init()

在您创建的每个访问 MySQL 的线程中调用它。

mysql_thread_end() 在调用之前先调用它pthread_exit()

然后,链接您的代码libmysqld.a而不是libmysqlclient.a. 为确保您的应用程序和服务器库之间的二进制兼容性,请始终针对用于编译服务器库的同一系列 MySQL 的标头编译您的应用程序。例如,如果libmysqld是针对 MySQL 5.5 标头编译的,请不要针对 MySQL 5.6 标头编译您的应用程序,反之亦然。

因为这些 功能也包含在 中 ,所以您只需将您的应用程序与正确的库链接起来,就可以在嵌入式和客户端/服务器版本之间切换。请参阅 mysql_library_init()mysql_library_xxx()libmysqlclient.a

嵌入式服务器和独立服务器之间的一个区别是,对于嵌入式服务器,默认情况下禁用连接身份验证。