MySQL 5.7 C API Developer Guide
struct st_mysql_client_plugin * mysql_load_plugin(MYSQL *mysql, const char *name, int type, int argc, ...)
Loads a MySQL client plugin, specified by name and type. An error occurs if the type is invalid or the plugin cannot be loaded.
It is not possible to load multiple plugins of the same type. An error occurs if you try to load a plugin of a type already loaded.
Specify the arguments as follows:
mysql
: A pointer to a
MYSQL
structure. The plugin API does
not require a connection to a MySQL server, but this
structure must be properly initialized. The structure is
used to obtain connection-related information.
name
: The name of the plugin to load.
type
: The type of plugin to load, or
−1 to disable type checking. If type is not
−1, only plugins matching the type are considered
for loading.
argc
: The number of following arguments
(0 if there are none). Interpretation of any following
arguments depends on the plugin type.
Another way to cause plugins to be loaded is to set the
LIBMYSQL_PLUGINS
environment variable to a
list of semicolon-separated plugin names. For example:
export LIBMYSQL_PLUGINS="myplugin1;myplugin2"
Plugins named by LIBMYSQL_PLUGINS
are
loaded when the client program calls
mysql_library_init()
. No error
is reported if problems occur loading these plugins.
The LIBMYSQL_PLUGIN_DIR
environment
variable can be set to the path name of the directory in which
to look for client plugins. This variable is used in two ways:
During client plugin preloading, the value of the
--plugin-dir
option is not
available, so client plugin loading fails unless the
plugins are located in the hardwired default directory. If
the plugins are located elsewhere,
LIBMYSQL_PLUGIN_DIR
environment
variable can be set to the proper directory to enable
plugin preloading to succeed.
For explicit client plugin loading, the
mysql_load_plugin()
and
mysql_load_plugin_v()
C
API functions use the
LIBMYSQL_PLUGIN_DIR
value if it exists
and the --plugin-dir
option was not given. If
--plugin-dir
is given,
mysql_load_plugin()
and
mysql_load_plugin_v()
ignore LIBMYSQL_PLUGIN_DIR
.
To check for errors, call the
mysql_error()
or
mysql_errno()
function. See
Section 5.4.15, “mysql_error()”, and
Section 5.4.14, “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); }