在 MySQL 8.4 中,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;
如果在服务器启动时使用
--plugin-load
或--plugin-load-add
选项加载了validate_password
插件,请从服务器启动过程中省略该选项。例如,如果该选项列在服务器选项文件中,请将其从文件中移除。重启服务器。