INSTALL COMPONENT component_name [, component_name ] ...
此语句安装一个或多个组件,这些组件会立即激活。组件提供服务器和其他组件可用的服务;参见
第 5.5 节,“MySQL 组件”。INSTALL
COMPONENT
需要系统表的
INSERT
权限,
mysql.component
因为它向该表添加一行以注册组件。
例子:
INSTALL COMPONENT 'file://component1', 'file://component2';
组件使用 URN 命名,该 URN 以
file://
实现该组件的库文件的基本名称开头,该库文件位于
plugin_dir
系统变量命名的目录中。组件名称不包括任何平台相关的文件名后缀,例如.so
或
.dll
。(这些命名细节可能会发生变化,因为组件名称解释本身由服务执行,并且组件基础结构可以用替代实现替换默认服务实现。)
如果发生任何错误,该语句将失败并且无效。例如,如果组件名称错误、命名组件不存在或已安装,或者组件初始化失败,就会发生这种情况。
加载程序服务处理组件加载,包括将已安装的组件添加到
mysql.component
用作注册表的系统表。对于随后的服务器重新启动,中列出的任何组件mysql.component
都在启动序列期间由加载程序服务加载。即使服务器以该
--skip-grant-tables
选项启动,也会发生这种情况。
如果某个组件依赖于注册表中不存在的服务,并且您尝试安装该组件而不同时安装提供它所依赖的服务的一个或多个组件,则会发生错误:
ERROR 3527 (HY000): Cannot satisfy dependency for service 'component_a'
required by component 'component_b'.
为避免此问题,要么在同一语句中安装所有组件,要么在安装依赖组件之后再安装依赖组件。
对于密钥环组件,请勿使用
INSTALL COMPONENT
. 相反,使用清单文件配置密钥环组件加载。请参阅
第 6.4.4.2 节,“密钥环组件安装”。