第25章:API和库 / 25.1. libmysqld,嵌入式MySQL服务器库 / 25.1.1. 嵌入式MySQL服务器库概述

使用嵌入式MySQL服务器库,能够在客户端应用程序中使用具备全部特性的MySQL服务器。 主要优点在于,增加了速度,并使得嵌入式应用程序的管理更简单。

嵌入式服务器库是以MySQL的客户端/服务器版本为基础的,采用C/C++语言编写。 其结果是嵌入式服务器也是用C/C++语言编写的。 在其他语言中,嵌入式服务器不可用。

API与嵌入式MySQL版本和客户端/服务器版本等效。 要想更改旧的线程式应用程序以使用嵌入式库,正常情况下,仅需添加对下述函数的调用即可。

函数

何时调用

mysql_server_init()

应在调用任何其他MySQL函数之前调用,最好是在main()函数中调用。

mysql_server_end()

应在程序退出前调用。

mysql_thread_init()

应在你所创建的、用于访问MySQL的每个线程中调用。

mysql_thread_end()

应在调用pthread_exit()之前调用。

随后,必须将你的代码与libmysqld.a链接起来,而不是libmysqlclient.a。

libmysqlclient.a中还包含mysql_server_xxx()函数,使用这类函数,通过将应用程序链接到恰当的库,即可在嵌入式版本和客户端/服务器版本之间切换。 请参见25.2.12.1节,“mysql_server_init()”

嵌入式服务器和独立服务器之间的一项差别在于,对于嵌入式服务器,默认情况下,连接鉴定是禁止的。 对于嵌入式服务器,要想使用鉴定功能,可在激活“configure”以配置MySQL分发版时使用“--with-embedded-privilege-control”选项。