#### 13.7.4.3 安装组件声明

[](<>)[](<>)[](<>)

```
INSTALL COMPONENT component_name [, component_name ] ...
```

此语句安装一个或多个组件，这些组件立即变为活动状态。组件提供对服务器和其他组件可用的服务；看[第 5.5 节，“MySQL 组件”](components.html).[`安装组件`](install-component.html)需要[`插入`](privileges-provided.html#priv_insert)的特权`mysql.component`系统表，因为它在该表中添加一行来注册组件。

例子：

```
INSTALL COMPONENT 'file://component1', 'file://component2';
```

使用以开头的 URN 命名组件`文件：//`并指示实现该组件的库文件的基本名称，位于由[`插件目录`](server-system-variables.html#sysvar_plugin_dir)系统变量。组件名称不包含任何平台相关的文件名后缀，例如`。所以`要么`.dll`.（这些命名细节可能会发生变化，因为组件名称解释本身是由服务执行的，并且组件基础结构可以用替代实现替换默认服务实现。）

如果发生任何错误，则该语句将失败并且无效。例如，如果组件名称错误、命名组件不存在或已安装，或者组件初始化失败，则会发生这种情况。

加载器服务处理组件加载，包括将已安装的组件添加到`mysql.component`用作注册表的系统表。对于后续服务器重新启动，列出的任何组件`mysql.component`在启动序列期间由加载器服务加载。即使服务器以[`--skip-grant-tables`](server-options.html#option_mysqld_skip-grant-tables)选项。

如果某个组件依赖于注册表中不存在的服务，并且您尝试安装该组件而没有安装提供它所依赖的服务的一个或多个组件，则会发生错误：

```
ERROR 3527 (HY000): Cannot satisfy dependency for service 'component_a'
required by component 'component_b'.
```

为避免此问题，请在同一语句中安装所有组件，或者在安装依赖组件后安装依赖组件。

笔记

对于密钥环组件，请勿使用[`安装组件`](install-component.html).相反，使用清单文件配置密钥环组件加载。看[第 6.4.4.2 节，“密钥环组件安装”](keyring-component-installation.html).
