The server plugin implementation comprises several components.
SQL statements:
INSTALL PLUGIN registers a
plugin in the mysql.plugin table and
loads the plugin code.
UNINSTALL PLUGIN unregisters
a plugin from the mysql.plugin table and
unloads the plugin code.
The WITH PARSER clause for full-text
index creation associates a full-text parser plugin with a
given FULLTEXT index.
SHOW PLUGINS displays
information about server plugins.
Command-line options and system variables:
The --plugin-load option
enables plugins to be loaded at server startup time.
The plugin_dir system
variable indicates the location of the directory where all
plugins must be installed. The value of this variable can be
specified at server startup with a
--plugin_dir=
option. mysql_config --plugindir displays
the default plugin directory path name.
dir_name
For additional information about plugin loading, see Section 5.5.2, “Installing and Uninstalling Plugins”.
Plugin-related tables:
The INFORMATION_SCHEMA.PLUGINS
table contains plugin information.
The mysql.plugin table lists each plugin
that was installed with INSTALL
PLUGIN and is required for plugin use. For new
MySQL installations, this table is created during the
installation process.
The client plugin implementation is simpler:
For the mysql_options() C
API function, the MYSQL_DEFAULT_AUTH and
MYSQL_PLUGIN_DIR options enable client
programs to load authentication plugins.
There are C API functions that enable management of client plugins.
To examine how MySQL implements plugins, consult the following source files in a MySQL source distribution:
In the include/mysql directory,
plugin.h exposes the public plugin API.
This file should be examined by anyone who wants to write a
plugin library.
plugin_
files provide additional information that pertains to
specific types of plugins.
xxx.hclient_plugin.h contains information
specific to client plugins.
In the sql directory,
sql_plugin.h and
sql_plugin.cc comprise the internal
plugin implementation. sql_acl.cc is
where the server uses authentication plugins. These files
need not be consulted by plugin developers. They may be of
interest for those who want to know more about how the
server handles plugins.
In the sql-common directory,
client_plugin.h implements the C API
client plugin functions, and client.c
implements client authentication support. These files need
not be consulted by plugin developers. They may be of
interest for those who want to know more about how the
server handles plugins.