MySQL 8.0 参考手册  / 第 6 章 安全  / 6.4 安全组件和插件  / 6.4.3 密码验证组件  /  6.4.3.3 过渡到密码验证组件

6.4.3.3 过渡到密码验证组件

笔记

在 MySQL 8.0 中, validate_password插件被重新实现为validate_password组件。该 validate_password插件已弃用;希望在未来的 MySQL 版本中将其删除。

当前使用该 validate_password插件的 MySQL 安装应该改为使用该validate_password 组件。为此,请使用以下过程。该过程会在卸载插件之前安装组件,以避免出现不进行密码验证的时间窗口。(组件和插件可以同时安装。在这种情况下,服务器会尝试使用组件,如果组件不可用则回退到插件。)

  1. 安装validate_password组件:

    INSTALL COMPONENT 'file://component_validate_password';
  2. 测试validate_password组件以确保它按预期工作。如果您需要设置任何 系统变量,您可以在运行时使用 . (必须进行的任何选项文件更改都在下一步中执行。) validate_password.xxxSET GLOBAL

  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选项(它仅适用于插件,不适用于组件),并将系统变量引用从适用于插件的无点名称修改为适用于组件的带点名称:

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

    对于在运行时引用validate_password插件系统和状态变量的应用程序,需要进行类似的调整。将无点插件变量名称更改为相应的点组件变量名称。

  4. 卸载validate_password插件:

    UNINSTALL PLUGIN validate_password;

    如果validate_password插件是在服务器启动时使用 --plugin-load--plugin-load-add选项加载的,请在服务器启动过程中忽略该选项。例如,如果该选项列在服务器选项文件中,请将其从文件中删除。

  5. 重新启动服务器。