Pre-General Availability Draft: 2018-01-12
MySQL Server includes a component-based infrastructure for extending server capabilities:
A component provides services that are available to the server and other components. (With respect to service use, the server is a component, equal to other components.) Components interact with each other only through the services they provide.
A loader service handles component loading and unloading, and also lists loaded components in the
mysql.componentsystem table that serves as a registry.
The SQL statements for component manipulation affect server
operation and the
mysql.component system table as
INSTALL COMPONENTloads components into the server. The components become active immediately. The loader service also registers loaded components in the
mysql.componentsystem table. For subsequent server restarts, any components listed in
mysql.componentare loaded by the loader service during the startup sequence. This occurs even if the server is started with the
UNINSTALL COMPONENTdeactivates components and unloads them from the server. The loader service also unregisters the components from the
mysql.componentsystem table so that they are no longer loaded during the startup sequence for subsequent server restarts.
To see which components are installed, use this statement:
SELECT * FROM mysql.component;
MySQL distributions include several components that implement server extensions:
System variables implemented by a server component are exposed when
the component is installed and have names that begin with a
component-specific prefix. For example, the
log_filter_dragnet error log filter component
implements a system variable named
log_error_filter_rules, the full name of which is
refer to this variable, use the full name.
For information about the internal implementation of components, see http://dev.mysql.com/doc/dev/mysql-server/latest/PAGE_EXTENDING.html. For example, if you intend to write your own components, this information is important for understanding how components work.