Components must be loaded into the server before they can be used. MySQL supports manual component loading at runtime and automatic loading during server startup.
While a component is loaded, information about it is available as described in Section 7.5.2, “Obtaining Component Information”.
The INSTALL COMPONENT and UNINSTALL COMPONENT SQL statements enable component loading and unloading. For example:
INSTALL COMPONENT 'file://component_validate_password';
UNINSTALL COMPONENT 'file://component_validate_password';
A loader service handles component loading and unloading, and also registers loaded components in the mysql.component system table.
The SQL statements for component manipulation affect server operation and the mysql.component system table as follows:
-
INSTALL COMPONENTloads components into the server. The components become active immediately. The loader service also registers loaded components in themysql.componentsystem table. For subsequent server restarts, the loader service loads any components listed inmysql.componentduring the startup sequence. This occurs even if the server is started with the--skip-grant-tablesoption. The optionalSETclause permits setting component system-variable values when you install components. -
UNINSTALL COMPONENTdeactivates components and unloads them from the server. The loader service also unregisters the components from themysql.componentsystem table so that the server no longer loads them during its startup sequence for subsequent restarts.
Compared to the corresponding INSTALL PLUGIN statement for server plugins, the INSTALL COMPONENT statement for components offers the significant advantage that it is not necessary to know any platform-specific file name suffix for naming the component. This means that a given INSTALL COMPONENT statement can be executed uniformly across platforms.
A component when installed may also automatically install related loadable functions. If so, the component when uninstalled also automatically uninstalls those functions.