似乎问题在于文档在代码之前。
我是一名 DBA,而不是 C 程序员,虽然我涉足服务器内部。如果include/mysql.h
MySQL 服务器源文件中的文件有任何指示,那么这些mysql_server_*
函数就是您要查找的函数。
/*
mysql_server_init/end need to be called when using libmysqld or
libmysqlclient (exactly, mysql_server_init() is called by mysql_init() so
you don't need to call it explicitely; but you need to call
mysql_server_end() to free memory). The names are a bit misleading
(mysql_SERVER* to be used when using libmysqlCLIENT). So we add more general
names which suit well whether you're using libmysqld or libmysqlclient. We
intend to promote these aliases over the mysql_server* ones.
*/
#define mysql_library_init mysql_server_init
#define mysql_library_end mysql_server_end
“我们打算在 mysql_server* 上推广这些别名。”
显然,他们在文档中推广了它们。
看起来Bug #65887是对同一问题的报告,他们从未真正开始做任何事情。
您可能还会发现MariaDB 的“用于 MariaDB 和 MySQL”的 C API 实现是一种可行的并且可能更容易获得许可的替代方案。