Extending MySQL 8.0/.../ Compiling and Installing Plugin Libraries

4.4.3 Compiling and Installing Plugin Libraries

After your plugin is written, you must compile it and install it. The procedure for compiling shared objects varies from system to system. If you build your library usingCMake, it should be able to generate the correct compilation commands for your system. If the library is namedsomepluglib, you should end up with a shared library file that has a name something likesomepluglib.so. (The.sofile name suffix might differ on your system.)

使用CMake, you'll need to set up the configuration files to enable the plugin to be compiled and installed. Use the plugin examples under theplugindirectory of a MySQL source distribution as a guide.

CreateCMakeLists.txt, which should look something like this:

MYSQL_ADD_PLUGIN(somepluglib somepluglib.c MODULE_ONLY MODULE_OUTPUT_NAME "somepluglib")

WhenCMakegenerates theMakefile, it should take care of passing to the compilation command the-DMYSQL_DYNAMIC_PLUGINflag, and passing to the linker the-lmysqlservicesflag, which is needed to link in any functions from services provided through the plugin services interface. SeeMySQL Plugin Services.

RunCMake, then runmake:

shell> cmake . shell> make

If you need to specify configuration options toCMake, seeMySQL Source-Configuration Options, for a list. For example, you might want to specifyCMAKE_INSTALL_PREFIXto indicate the MySQL base directory under which the plugin should be installed. You can see what value to use for this option withSHOW VARIABLES:

mysql> SHOW VARIABLES LIKE 'basedir'; +---------------+------------------+ | Variable_name | Value | +---------------+------------------+ | base | /usr/local/mysql | +---------------+------------------+

The location of the plugin directory where you should install the library is given by theplugin_dirsystem variable. For example:

mysql> SHOW VARIABLES LIKE 'plugin_dir'; +---------------+-----------------------------------+ | Variable_name | Value | +---------------+-----------------------------------+ | plugin_dir | /usr/local/mysql/lib/mysql/plugin | +---------------+-----------------------------------+

To install the plugin library, usemake:

shell> make install

Verify thatmake installinstalled the plugin library in the proper directory. After installing it, make sure that the library permissions permit it to be executed by the server.