• 【Mac系统】之Mysql数据库遇到修改数字密码的问题(SQL语法错误:ERROR 1064 (42000),密码策略等问题:ERROR 1819 (HY000))


    安装完Mysql也进行了第一次初始化密码以及修改密码规则(请参考文章),但是我想后续再改密码,出现了下面几个问题:

    #SQL语句错误问题
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to 
    your MySQL server version for the right syntax to use near '('12345678') WHERE user = 'root'' at line 1 #密码策略问题 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    一、SQL语句错误问题

    在网上找了很多的设置密码的语句,发现都不适合,后来才发现,是我在设置密码规则时动了手脚,要按照密码规则设置的执行语句修改密码才可以(文章内容刚刚在上面文字发了链接,可以参考文章里的“修改密码规则”那块内容)

    言归正传,下面为网上搜的一些更新密码的语句,由于不适合我的密码规则,所以用不了,但不一定其他人用不了,先在此记录下来:

    UPDATE user SET Password = PASSWORD('12345678') WHERE user = 'root';
    
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD(123456);

    下面是我的密码规则,更新密码语句,执行下面的语句就不报上面的语法错误了:

    #下面两种都可以修改密码
    ALTER user 'root'@'localhost' IDENTIFIED BY '12345678';
    #或
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '12345678';

    二、密码策略问题

    当我执行下面这两种语句时,报:

    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements密码策略问题

    ALTER user 'root'@'localhost' IDENTIFIED BY '12345678';
    #或
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '12345678';

    后经帮助查到一篇文章:《ERROR 1819 (HY000): Your password does not satisfy the current policy requirements》解决此问题。

    解决办法:

    先登录数据库,执行下面语句:

    mysql -u root -p
    
    password:xxx

    1、查看 mysql 初始的密码策略,
    输入下面语句,进行查看,如图

    SHOW VARIABLES LIKE 'validate_password%';

    这个就是密码策略!!!

    关于 mysql 密码策略相关参数;
    1)、validate_password_length  固定密码的总长度;
    2)、validate_password_dictionary_file 指定密码验证的文件路径;
    3)、validate_password_mixed_case_count  整个密码中至少要包含大/小写字母的总个数;
    4)、validate_password_number_count  整个密码中至少要包含阿拉伯数字的个数;
    5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
    关于 validate_password_policy 的取值:
    0/LOW:只验证长度;
    1/MEDIUM:验证长度、数字、大小写、特殊字符;
    2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
    6)、validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;

    2、设置密码的验证强度等级(就是因为这个问题)

    只要修改密码强度等级就可以,就可以解决密码策略问题,原因是自己的密码“1234567”太简单了!!!所以改LOW点!!!

    执行语句:

    set global validate_password.policy=LOW;
    
    set global validate_password.policy=0;(我用的这条)

    set global validate_password_policy=LOW; ==》文章里说用这个,但是我的密码策略那个字段名称是validate_password.policy,所以大家注意一下。

    修改完强度等级之后,再执行:

    #修改密码长度(可有可无,随意)
    set global validate_password.length = 6;
    
    #刷新
    FLUSH PRIVILEGES;
    
    #更改密码成功!!!
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '12345678';
    
    #刷新
    FLUSH PRIVILEGES;
    
    
    #退出
    exit;
    
    #再重新用新密码登录
    mysql -u root -p
    
    password:输入新密码

    大功告成!!!

    具体修改其他内容可以参考解决问题的文章!!!!

     ==============================================

    扩展其他,更新查看user表信息:

    update user set authentication_string='' where user='root';
    select user,host,authentication_string from user;

  • 相关阅读:
    h5 input调起摄像头、摄像机、录音机
    基数排序
    快速排序 && 希尔排序 && 插入排序
    堆排序
    归并排序(Merge sort)
    动态规划:背包问题
    Chap5: question: 29
    排列 && 组合
    Chap4: question: 19
    Chap3: question: 11
  • 原文地址:https://www.cnblogs.com/Owen-ET/p/9644727.html
Copyright © 2020-2023  润新知