INSTALL COMPONENT component_name [, component_name ] ...
该语句安装一个或多个服务器组件,这些组件将立即变为活动状态。组件提供服务器和其他组件可用的服务;请参见 第5.5节“ MySQL服务器组件”。 INSTALL COMPONENT需要系统表的 INSERT特权 mysql.component。
例:
INSTALL COMPONENT 'file://component1', 'file://component2';
组件名称是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'.
为避免此问题,请在同一语句中安装所有组件,或者在安装依赖它的任何组件之后安装从属组件。