在MySQL中,可以通过修改密码验证插件和密码复杂度策略来设置密码复杂度。以下是一些常见的设置方法:
修改密码验证插件:MySQL 5.7及更高版本默认使用了密码验证插件caching_sha2_password,可以通过修改为mysql_native_password来简化密码验证。可以通过以下命令修改:
ALTER USER ‘username’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
设置密码复杂度策略:MySQL 5.7及更高版本支持密码策略插件,可以通过安装插件来设置密码复杂度。以下是一个示例:
a. 下载密码策略插件validate_password:
wget https://github.com/mysql/mysql-server/raw/5.7/plugin/validate_password/validate_password.so
b. 将插件放入MySQL插件目录:
sudo mv validate_password.so /usr/lib/mysql/plugin/
c. 修改MySQL配置文件my.cnf,添加以下内容:
plugin-load-add = validate_password.so validate_password_policy=STRONG validate_password_length=8
d. 重启MySQL服务:
sudo systemctl restart mysql
这样设置后,密码策略将要求密码长度至少为8个字符,并且包含至少一个数字、一个大写字母、一个小写字母和一个特殊字符。
请注意,在MySQL 8.0版本中,validate_password插件已经成为默认插件,无需额外安装。可以直接通过修改validate_password_policy和validate_password_length参数来设置密码复杂度策略。例如,设置密码长度至少为8个字符,需要包含至少一个数字、一个大写字母、一个小写字母和一个特殊字符,可以执行以下命令:
SET GLOBAL validate_password.policy=STRONG; SET GLOBAL validate_password.length=8;
以上是一些常见的设置方法,具体的设置方式可以根据实际需求和MySQL版本进行调整。