#### 6.4.3.3过渡到密码验证组件

[](<>)

笔记

在MySQL 8.0中`验证密码`插件被重新实现为`验证密码`组成部分这个`验证密码`插件被弃用；预计它将在MySQL的未来版本中被删除。

当前使用`验证密码`插件应该过渡到使用`验证密码`取而代之的是组件。为此，请使用以下步骤。该过程在卸载插件之前安装组件，以避免出现没有密码验证的时间窗口。（组件和插件可以同时安装。在这种情况下，服务器会尝试使用该组件，如果组件不可用，服务器会返回插件。）

1.  安装`验证密码`组成部分：

    ```
    INSTALL COMPONENT 'file://component_validate_password';
    ```

2.  测试`验证密码`组件，以确保其按预期工作。如果你需要设置`验证密码*`xxx`*`系统变量，您可以在运行时使用`设置全局`（必须进行的任何选项文件更改都将在下一步中执行。）

3.  调整对插件系统和状态变量的任何引用，以引用相应的组件系统和状态变量。假设之前您在启动时使用如下选项文件配置了插件：

    ```
    [mysqld]
    validate-password=FORCE_PLUS_PERMANENT
    validate_password_dictionary_file=/usr/share/dict/words
    validate_password_length=10
    validate_password_number_count=2
    ```

    这些设置适用于插件，但必须修改以应用于组件。要调整选项文件，请忽略[`--验证密码`](validate-password-options-variables.html#option_mysqld_validate-password)选项（它仅适用于插件，而不适用于组件），并将系统变量引用从适用于插件的无点名称修改为适用于组件的点名称：

    ```
    [mysqld]
    validate_password.dictionary_file=/usr/share/dict/words
    validate_password.length=10
    validate_password.number_count=2
    ```

    对于在运行时引用`验证密码`插件系统和状态变量。将无点插件变量名更改为相应的虚线组件变量名。

4.  卸载`验证密码`插件：

    ```
    UNINSTALL PLUGIN validate_password;
    ```

    如果`验证密码`插件在服务器启动时使用[`--插件加载`](server-options.html#option_mysqld_plugin-load)或[`--插件加载添加`](server-options.html#option_mysqld_plugin-load-add)选项，从服务器启动过程中省略该选项。例如，如果该选项列在服务器选项文件中，请将其从文件中删除。

5.  重新启动服务器。
