mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
461e039a07
This patch changes the mechanism by which the client enables a plugin. Instead of using INSERT IGNORE to reload a plugin library, it now uses REPLACE INTO. This allows users to load a library multiple times replacing the existing values in the mysql.plugin table. This allows users to replace the symbol reference to a different dl name in the table. Thus permitting enabling of multiple versions of the same library without first disabling the old version. A regression test was added to ensure this feature works.
132 lines
3.7 KiB
Text
132 lines
3.7 KiB
Text
#
|
|
# Ensure the plugin isn't loaded.
|
|
#
|
|
SELECT * FROM mysql.plugin WHERE dl like 'libdaemon%' ORDER BY name;
|
|
name dl
|
|
#
|
|
# Enable the plugin...
|
|
#
|
|
#
|
|
# Simulate loading a plugin libary with multiple entry points.
|
|
# This will test the DISABLE to ensure all rows are removed.
|
|
#
|
|
INSERT INTO mysql.plugin VALUES ('wicky', 'libdaemon_example.so');
|
|
INSERT INTO mysql.plugin VALUES ('wacky', 'libdaemon_example.so');
|
|
INSERT INTO mysql.plugin VALUES ('wonky', 'libdaemon_example.so');
|
|
#
|
|
# Ensure the plugin is now loaded.
|
|
#
|
|
SELECT * FROM mysql.plugin WHERE dl like 'libdaemon%' ORDER BY name;
|
|
name dl
|
|
daemon_example libdaemon_example.so
|
|
wacky libdaemon_example.so
|
|
wicky libdaemon_example.so
|
|
wonky libdaemon_example.so
|
|
#
|
|
# Ensure the plugin is loaded.
|
|
#
|
|
SELECT * FROM mysql.plugin WHERE dl like '%libdaemon%' ORDER BY name;
|
|
name dl
|
|
daemon_example libdaemon_example.so
|
|
#
|
|
# Ensure the plugin is replaced.
|
|
#
|
|
SELECT * FROM mysql.plugin WHERE dl like '%libdaemon%' ORDER BY name;
|
|
name dl
|
|
daemon_example liblibdaemon_example.so
|
|
#
|
|
# Disable the plugin...
|
|
#
|
|
#
|
|
# Ensure the plugin isn't loaded.
|
|
#
|
|
SELECT * FROM mysql.plugin WHERE dl like '%libdaemon%' ORDER BY name;
|
|
name dl
|
|
#
|
|
# Attempt to load non-existant plugin
|
|
#
|
|
ERROR: Cannot read plugin config file NOT_THERE_AT_ALL. File does not exist.
|
|
#
|
|
# Attempt to use non-existant plugin.ini file
|
|
#
|
|
ERROR: Cannot read plugin config file daemon_example. File does not exist.
|
|
#
|
|
# Attempt to omit the plugin
|
|
#
|
|
ERROR: No plugin specified.
|
|
#
|
|
# Attempt to omit DISABLE|ENABLE
|
|
#
|
|
ERROR: missing operation. Please specify either '<plugin> ENABLE' or '<plugin> DISABLE'.
|
|
#
|
|
# Attempt to use bad paths - datadir
|
|
#
|
|
ERROR: Cannot access datadir at '/data_not_there/'.
|
|
#
|
|
# Attempt to use bad paths - basedir
|
|
#
|
|
ERROR: Cannot access basedir at '/basedir_not_there/'.
|
|
#
|
|
# Attempt to use bad paths - plugin_dir
|
|
#
|
|
ERROR: Cannot read plugin config file daemon_example. File does not exist.
|
|
#
|
|
# Attempt to use bad paths - mysqld
|
|
#
|
|
ERROR: Cannot access mysqld path '/mysqld_not_there/'.
|
|
#
|
|
# Attempt to use bad paths - my_print_defaults
|
|
#
|
|
ERROR: Cannot access my-print-defaults path '/my_print_defaults_not_there/'.
|
|
#
|
|
# Missing library
|
|
#
|
|
ERROR: The plugin library is missing or in a different location.
|
|
#
|
|
# Bad format for config file
|
|
#
|
|
ERROR: Cannot read plugin config file daemon_example. Bad format in plugin configuration file.
|
|
#
|
|
# Missing base_dir option
|
|
#
|
|
ERROR: Missing --basedir option.
|
|
#
|
|
# Missing data_dir option
|
|
#
|
|
ERROR: Missing --datadir option.
|
|
#
|
|
# Missing plugin_dir option
|
|
#
|
|
ERROR: Missing --plugin_dir option.
|
|
#
|
|
# Show the help.
|
|
#
|
|
mysql_plugin Ver V.V.VV Distrib XX.XX.XX
|
|
Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
|
|
|
Enable or disable plugins.
|
|
|
|
Usage: mysql_plugin [options] <plugin> ENABLE|DISABLE
|
|
|
|
Options:
|
|
-?, --help Display this help and exit.
|
|
-b, --basedir=name The basedir for the server.
|
|
-d, --datadir=name The datadir for the server.
|
|
-p, --plugin-dir=name
|
|
The plugin dir for the server.
|
|
-i, --plugin-ini=name
|
|
Read plugin information from configuration file specified
|
|
instead of from <plugin-dir>/<plugin_name>.ini.
|
|
-n, --no-defaults Do not read values from configuration file.
|
|
-P, --print-defaults
|
|
Show default values from configuration file.
|
|
-m, --mysqld=name Path to mysqld executable. Example: /sbin/temp1/mysql/bin
|
|
-f, --my-print-defaults=name
|
|
Path to my_print_defaults executable. Example:
|
|
/source/temp11/extra
|
|
-v, --verbose More verbose output; you can use this multiple times to
|
|
get even more verbose output.
|
|
-V, --version Output version information and exit.
|
|
|
|
|
|
mysql_plugin Ver V.V.VV Distrib XX.XX.XX
|