问题描述:
修改MySQL8密码策略用到以下命令
mysql> set global validate_password_policy=LOW;
或
mysql> set global validate_password_policy=0;
时出现错误提示:
ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
原因分析:
使用命令:
mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';
或
mysql> SHOW VARIABLES LIKE 'validate_password%';
可以看到,均返回Empty set
结果,究其原因,MySQL密码密码策略validate_password
默认状态为NOT activated
(说法来自stackoverflow)
解决方案:
最好先修改一下密码(例如MySQL_22sql):
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新的密码';
使用命令
mysql> install plugin validate_password soname 'validate_password.so';
返回Query OK, 0 rows affected, 1 warning
再次使用命令
mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';
返回表
即说明密码策略已启用
再次使用命令
mysql> SHOW VARIABLES LIKE 'validate_password%';
返回具体的参数配置
此时即可使用命令修改密码策略
密码强度要求(0或low代表最低要求):
mysql> set global validate_password_policy=0;
密码长度要求:
mysql> set global validate_password_length=你自己想要的长度;
修改成功:
参考来源:
- https://stackoverflow.com/questions/55237257/mysql-validate-password-policy-unknown-system-variable
- https://www.cnblogs.com/rusking/p/10561432.html