在 MySQL 8.3 中,validate_password
插件被重新实现为 validate_password
组件。validate_password
插件已弃用;预计在未来版本的 MySQL 中删除。
当前使用 validate_password
插件的 MySQL 安装应该转换为使用 validate_password
组件。为此,请按照以下步骤进行操作。该步骤在卸载插件之前安装组件,以避免在没有密码验证的情况下出现时间窗口。(组件和插件可以同时安装。在这种情况下,服务器尝试使用组件,如果组件不可用,则回退到插件。)
-
安装
validate_password
组件:INSTALL COMPONENT 'file://component_validate_password';
-
测试
validate_password
组件,以确保其按预期工作。如果需要设置任何validate_password.
系统变量,可以使用xxx
SET GLOBAL
在运行时进行设置。(任何必须在下一步中进行的选项文件更改。) -
调整任何对插件系统和状态变量的引用,以引用相应的组件系统和状态变量。假设以前您使用选项文件像这样配置插件:
[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
插件系统和状态变量的应用程序。将无点插件变量名称更改为相应的点组件变量名称。 -
卸载
validate_password
插件:UNINSTALL PLUGIN validate_password;
如果
validate_password
插件是在服务器启动时使用--plugin-load
或--plugin-load-add
选项加载的,从服务器启动过程中省略该选项。例如,如果该选项在服务器选项文件中列出,请从文件中删除它。 -
重新启动服务器。