Type: New Feature
Status: On Hold
Affects Version/s: 5.6.x, 5.7.x
Fix Version/s: None
Add a new boolean server command line option
--force-all-plugins=TRUE|FALSE. FALSE corresponds to the legacy
MySQL behavior and TRUE is the new default. If TRUE, the server
will abort its startup if any of the plugins in the mysql.plugin
fail to load.
Add a new value to the --plugin-name variable, OPTIONAL. It will allow for the specified plugin to be loaded but any load error will not be fatal.
Interaction with other plugin load-controlling options (http://dev.mysql.com/doc/refman/5.6/en/server-plugin-loading.html)
--plugin-load, --plugin-load-add: failure to load any of these
plugins will result in server startup abort too.
--skip-grant-tables: straightforward as this will cause no plugins
in mysql.plugin table to be loaded, thus no forcing. If both
--skip-grant-tables and --plugin-load[-add] are specified, the
mysql.plugin plugins will be skipped and plugin-load ones forced.
--plugin-name=OFF, --disable-plugin-name, --skip-plugin-name: a
forced plugin load is skipped for this plugin.
--plugin-name=ON|FORCE, --enable-plugin-name: no-ops.
--plugin-name=FORCE_PLUS_PERMANENT: prevents the plugin from being
unloaded at runtime, otherwise a no-op.
The motivation for this option is 3rd party storage engine plugins
such as TokuDB. Their failure to load results in reduced server
functionality, for example, existing tables in that storage engine
become inaccessible. Moreover, if, for example, crash recovery is
needed, it will run partially, may choose the wrong transaction
log coordinator, resulting in crash recovery failure, server
abort, and the need to perform heuristic or manual crash
recovery. However mysql.plugin schema does not differentiate
between the plugin types, thus we cannot tell whether any plugin
is a storage engine without attempting to load it first. That's
why we force initialization for all installed plugins.