嵌入式 MySQL 服务器库使得在客户端应用程序中运行功能齐全的 MySQL 服务器成为可能。主要的好处是提高了嵌入式应用程序的速度和更简单的管理。
嵌入式服务器库从libmysqld
MySQL 5.7.19 开始弃用,并在 MySQL 8.0 中删除。
嵌入式服务器库基于 MySQL 的客户端/服务器版本,用 C/C++ 编写。因此,嵌入式服务器也是用 C/C++ 编写的。没有其他语言版本的嵌入式服务器。
嵌入式 MySQL 版本和客户端/服务器版本的 API 是相同的。要更改线程应用程序以使用嵌入式库,您通常只需添加对以下函数的调用。
表 27.2 MySQL 嵌入式服务器库函数
功能 |
什么时候打电话 |
---|---|
在调用任何其他 MySQL 函数之前调用它,最好是在 |
|
在程序退出之前调用它。 |
|
在您创建的每个访问 MySQL 的线程中调用它。 |
|
mysql_thread_end() |
在调用之前先调用它pthread_exit() 。 |
然后,链接您的代码libmysqld.a
而不是libmysqlclient.a
. 为确保您的应用程序和服务器库之间的二进制兼容性,请始终针对用于编译服务器库的同一系列 MySQL 的标头编译您的应用程序。例如,如果libmysqld
是针对 MySQL 5.6 标头编译的,请不要针对 MySQL 5.7 标头编译您的应用程序,反之亦然。
因为这些
功能也包含在 中
,所以您只需将您的应用程序与正确的库链接起来,就可以在嵌入式和客户端/服务器版本之间切换。请参阅
mysql_library_init()。
mysql_library_
xxx
()libmysqlclient.a
嵌入式服务器和独立服务器之间的一个区别是,对于嵌入式服务器,默认情况下禁用连接身份验证。