为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。

一般可通过log_error设置

  1. mysql> select @@log_error;
  2. +---------------------+
  3. | @@log_error |
  4. +---------------------+
  5. | /var/log/mysqld.log |
  6. +---------------------+
  7. 1 row in set (0.00 sec)

可通过# grep "password" /var/log/mysqld.log 命令获取MySQL的临时密码

  1. 2016-01-19T05:16:36.218234Z 1 [Note] A temporary password is generated for root@localhost: waQ,qR%be2(5

用该密码登录到服务端后,必须马上修改密码,不然会报如下错误:

  1. mysql> select user();
  2. ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

如果只是修改为一个简单的密码,会报以下错误:

  1. mysql> ALTER USER USER() IDENTIFIED BY '12345678';
  2. ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

这个其实与validate_password_policy的值有关。

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,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。

必须修改两个全局参数:

首先,修改validate_password_policy参数的值

  1. mysql> set global validate_password_policy=0;
  2. Query OK, 0 rows affected (0.00 sec)

这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。

  1. mysql> select @@validate_password_length;
  2. +----------------------------+
  3. | @@validate_password_length |
  4. +----------------------------+
  5. | 8 |
  6. +----------------------------+
  7. 1 row in set (0.00 sec)

validate_password_length参数默认为8,它有最小值的限制,最小值为:

  1. validate_password_number_count
  2. + validate_password_special_char_count
  3. + (2 * validate_password_mixed_case_count)

其中,validate_password_number_count指定了密码中数据的长度,validate_password_special_char_count指定了密码中特殊字符的长度,validate_password_mixed_case_count指定了密码中大小字母的长度。

这些参数,默认值均为1,所以validate_password_length最小值为4,如果你显性指定validate_password_length的值小于4,尽管不会报错,但validate_password_length的值将设为4。如下所示:

  1. mysql> select @@validate_password_length;
  2. +----------------------------+
  3. | @@validate_password_length |
  4. +----------------------------+
  5. | 8 |
  6. +----------------------------+
  7. 1 row in set (0.00 sec)
  8.  
  9. mysql> set global validate_password_length=1;
  10. Query OK, 0 rows affected (0.00 sec)
  11.  
  12. mysql> select @@validate_password_length;
  13. +----------------------------+
  14. | @@validate_password_length |
  15. +----------------------------+
  16. | 4 |
  17. +----------------------------+
  18. 1 row in set (0.00 sec)

如果修改了validate_password_number_count,validate_password_special_char_count,validate_password_mixed_case_count中任何一个值,则validate_password_length将进行动态修改。

  1. mysql> select @@validate_password_length;
  2. +----------------------------+
  3. | @@validate_password_length |
  4. +----------------------------+
  5. | 4 |
  6. +----------------------------+
  7. 1 row in set (0.00 sec)
  8.  
  9. mysql> select @@validate_password_mixed_case_count;
  10. +--------------------------------------+
  11. | @@validate_password_mixed_case_count |
  12. +--------------------------------------+
  13. | 1 |
  14. +--------------------------------------+
  15. 1 row in set (0.00 sec)
  16.  
  17. mysql> set global validate_password_mixed_case_count=2;
  18. Query OK, 0 rows affected (0.00 sec)
  19.  
  20. mysql> select @@validate_password_mixed_case_count;
  21. +--------------------------------------+
  22. | @@validate_password_mixed_case_count |
  23. +--------------------------------------+
  24. | 2 |
  25. +--------------------------------------+
  26. 1 row in set (0.00 sec)
  27.  
  28. mysql> select @@validate_password_length;
  29. +----------------------------+
  30. | @@validate_password_length |
  31. +----------------------------+
  32. | 6 |
  33. +----------------------------+
  34. 1 row in set (0.00 sec)

当然,前提是validate_password插件必须已经安装,MySQL5.7是默认安装的。

那么如何验证validate_password插件是否安装呢?可通过查看以下参数,如果没有安装,则输出将为空。

  1. mysql> SHOW VARIABLES LIKE 'validate_password%';
  2. +--------------------------------------+-------+
  3. | Variable_name | Value |
  4. +--------------------------------------+-------+
  5. | validate_password_dictionary_file | |
  6. | validate_password_length | 6 |
  7. | validate_password_mixed_case_count | 2 |
  8. | validate_password_number_count | 1 |
  9. | validate_password_policy | LOW |
  10. | validate_password_special_char_count | 1 |
  11. +--------------------------------------+-------+
  12. 6 rows in set (0.00 sec)

【转】ERROR 1819 (HY000): Your password does not satisfy the current policy requirements的更多相关文章

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

    为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log. 一般可通 ...

  2. mysql5.7设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    注:本文来源于<  mysql5.7设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy r ...

  3. mysql授权报错 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    授权用户时报错,ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 原因为其实与val ...

  4. mysql ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log. 一般可通 ...

  5. mysql5.7 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    mysql5.7初次登录使用提示 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before ...

  6. mysql错误详解(1819):ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    O(∩_∩)O哈哈~ 在学习 Mysql 的时候又遇到了新问题了 o(╥﹏╥)o 当我在准备为用户授权的时候: grant all privileges on *.* to 'root'@'%' id ...

  7. mysql修改密码Your password does not satisfy the current policy requirements

    出现这个问题的原因是:密码过于简单.刚安装的mysql的密码默认强度是最高的,如果想要设置简单的密码就要修改validate_password_policy的值, validate_password_ ...

  8. Your password does not satisfy the current policy requirements

    创建用户,做测试想设置一个简单的密码.报错: 大概是MySQL5.7搞事情,默认安装了validate_password插件. mysql> SHOW VARIABLES LIKE 'valid ...

  9. Your password does not satisfy the current policy requirements问题解决方法

    运行 mysql>set validate_password_policy=0; 目的是,可以设置弱密码.

随机推荐

  1. PostgreSQL-4-DML数据操纵语言

    1.查询语句 \h SELECT  查看SELECT语句说明 基本语法 SELECT column1, column2, columnN FROM table_name;  查询单列/多列数据 SEL ...

  2. 相册选择头像或者拍照 上传头像以NSData 图片二进制格式 表单上传

    一.点击头像图片 或者按钮 在相册选择照片返回img,网络上传头像要用data表单上传 (1)上传头像属性 // 图片二进制格式 表单上传 @property (nonatomic, strong) ...

  3. 抛出异常-throws和throw

    package com.mpp.test; import java.util.Scanner; public class TryDemoFour { public static void main(S ...

  4. 如何使用程序调用webApi接口

    如何使用程序调用webApi接口 在C#中,传统调用HTTP接口一般有两种办法: WebRequest/WebResponse组合的方法调用 WebClient类进行调用. 第一种方法抽象程度较低,使 ...

  5. Java三种技术架构

    http://blog.csdn.net/weixin_36416990/article/details/52845868

  6. mysql设置自增长列的当前值

    -- 查看表中自增长列的当前值 SELECT Auto_increment FROM information_schema.`TABLES` WHERE Table_Schema='rhr' AND ...

  7. 12.JAVA-基本数据类型的包装类操作

    1.基本数据类型的包装类 java是一个面向对象编程语言,也就是说一切操作都要用对象的形式进行.但是有个矛盾: 基本数据类型(char,int,double等)不具备对象特性(不携带属性和方法) 这样 ...

  8. RK3288开发过程中遇到的问题点和解决方法之Devices

    分区大小和“多用户支持” \device\rockchip\common\BoardConfig.mk BUILD_WITH_UMS ?= true改为BUILD_WITH_UMS ?= false ...

  9. 明白这十个故事-->你也就参悟了人生 .

    1.断箭 不相信自己的意志,永远也做不成将军.  春秋战国时代,一位父亲和他的儿子出征打仗.父亲已做了将军,儿子还只是马前卒.又一阵号角吹响,战鼓雷鸣了,父亲庄严地托起一个箭囊,其中插着一只箭.父亲郑 ...

  10. LR中常见请求的使用示例

    Action(){ //application/x-www-form-urlencoded //application/json //web_add_auto_header("Content ...