struct st_mysql_client_plugin *
mysql_load_plugin(MYSQL *mysql,
const char *name,
int type,
int argc,
...)
加载由名称和类型指定的 MySQL 客户端插件。如果类型无效或无法加载插件,则会发生错误。
无法加载同一类型的多个插件。如果您尝试加载已加载类型的插件,则会发生错误。
指定参数如下:
mysql
: 指向MYSQL
结构的指针。插件 API 不需要连接到 MySQL 服务器,但必须正确初始化此结构。该结构用于获取连接相关信息。name
:要加载的插件的名称。type
: 要加载的插件类型,或 -1 禁用类型检查。如果类型不是-1,则只考虑加载与类型匹配的插件。argc
: 以下参数的数量(如果没有则为 0)。任何以下参数的解释取决于插件类型。
加载插件的另一种方法是将
LIBMYSQL_PLUGINS
环境变量设置为以分号分隔的插件名称列表。例如:
export LIBMYSQL_PLUGINS="myplugin1;myplugin2"
以 命名的插件LIBMYSQL_PLUGINS
在客户端程序调用 时加载
mysql_library_init()
。如果加载这些插件时出现问题,则不会报告错误。
LIBMYSQL_PLUGIN_DIR
环境变量可以设置为在其中查找客户端插件的目录的路径名
。该变量有两种使用方式:
在客户端插件预加载期间,该
--plugin-dir
选项的值不可用,因此客户端插件加载失败,除非插件位于硬连线默认目录中。如果插件位于其他地方,LIBMYSQL_PLUGIN_DIR
可以将环境变量设置为正确的目录以使插件预加载成功。对于显式客户端插件加载, C API 函数
mysql_load_plugin()
和mysql_load_plugin_v()
C API 函数使用该LIBMYSQL_PLUGIN_DIR
值(如果该值存在--plugin-dir
且未给出选项)。如果--plugin-dir
给出,mysql_load_plugin()
则mysql_load_plugin_v()
忽略LIBMYSQL_PLUGIN_DIR
。
要检查错误,请调用
mysql_error()
或
mysql_errno()
函数。参见
第 5.4.16 节,“mysql_error()”和
第 5.4.15 节,“mysql_errno()”。
MYSQL mysql;
if(!mysql_load_plugin(&mysql, "myplugin",
MYSQL_CLIENT_AUTHENTICATION_PLUGIN, 0))
{
fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
exit(-1);
}