• MySQL8.0修改临时密码


    解决MySQL8.0报错:Unknown system variable 'validate_password_policy'

    一、问题描述

    1、在安装MySQL8.0时,修改临时密码,因密码过于简单(如:123456),不符合MySQL密码规范,会触发一个报错信息:

        

     ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。 

    二、遇到问题

    1、解决办法调整MySQL密码验证规则,修改 policy 和 length 的值。

    2、MySQL 5.7 进行如下设置,即可解决问题:

            

    1.  
      mysql> set global validate_password_policy=0;
    2.  
      mysql> set global validate_password_length=1;

    3、MySQL 8.0 执行代码:

        

    1.  
      mysql> set global validate_password_policy=0;
    2.  
      ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
    3.  
       
    4.  
      mysql> set global validate_password_length=1;
    5.  
      ERROR 1193 (HY000): Unknown system variable 'validate_password_length'

    三、问题解决

    1、分析: 可以看到,修改 policy 和 length 的值,在MySQL5.7中好使,在MySQL8.0中无效。'validate_password_policy' 变量不存在。

    2、解决: 先修改一个满足的密码 (如:Root_12root)。

    补充: validate_password_policy 有以下取值:

    Policy Tests Performed
    0 or LOW Length
    1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
    2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file

    默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

    3、密码修改后,可用命令查看 validate_password 密码验证插件是否安装。

            mysql> SHOW VARIABLES LIKE 'validate_password%';

    4、MySQL 5.7 查看密码验证插件:

    5、 MySQL 8.0 查看密码验证插件:

    四、问题总结

    1、 通过查看 MySQL5.7 和 MySQL8.0 密码验证插件对比,可知两个版本中,变量名不一样。(*_password_policy 和 *_password.policy ) --- 问题原因所在。

    2、MySQL 8.0 调整密码验证规则:

            mysql> set global validate_password.policy=0;
            mysql>  set global validate_password.length=1;
  • 相关阅读:
    core mvc 分页
    core下的routelink
    python 3使用binascii方法的报错解决
    汉字乱码处理
    DLL的调用方法
    Python内置函数清单
    Linux 几种上传文件到linux服务的方法
    在VS中添加lib的第三种方法
    Bash Shell 数字/字符比较大小
    虚拟Linux服务器不能获取IP的解决办法
  • 原文地址:https://www.cnblogs.com/sirwang/p/9630329.html
Copyright © 2020-2023  润新知