【转】ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。
一般可通过log_error设置

- mysql> select @@log_error;
- +---------------------+
- | @@log_error |
- +---------------------+
- | /var/log/mysqld.log |
- +---------------------+
- 1 row in set (0.00 sec)

可通过# grep "password" /var/log/mysqld.log 命令获取MySQL的临时密码
- 2016-01-19T05:16:36.218234Z 1 [Note] A temporary password is generated for root@localhost: waQ,qR%be2(5
用该密码登录到服务端后,必须马上修改密码,不然会报如下错误:
- mysql> select user();
- ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
如果只是修改为一个简单的密码,会报以下错误:
- mysql> ALTER USER USER() IDENTIFIED BY '12345678';
- 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参数的值
- mysql> set global validate_password_policy=0;
- Query OK, 0 rows affected (0.00 sec)
这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。

- mysql> select @@validate_password_length;
- +----------------------------+
- | @@validate_password_length |
- +----------------------------+
- | 8 |
- +----------------------------+
- 1 row in set (0.00 sec)

validate_password_length参数默认为8,它有最小值的限制,最小值为:
- validate_password_number_count
- + validate_password_special_char_count
- + (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。如下所示:

- mysql> select @@validate_password_length;
- +----------------------------+
- | @@validate_password_length |
- +----------------------------+
- | 8 |
- +----------------------------+
- 1 row in set (0.00 sec)
- mysql> set global validate_password_length=1;
- Query OK, 0 rows affected (0.00 sec)
- mysql> select @@validate_password_length;
- +----------------------------+
- | @@validate_password_length |
- +----------------------------+
- | 4 |
- +----------------------------+
- 1 row in set (0.00 sec)

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

- mysql> select @@validate_password_length;
- +----------------------------+
- | @@validate_password_length |
- +----------------------------+
- | 4 |
- +----------------------------+
- 1 row in set (0.00 sec)
- mysql> select @@validate_password_mixed_case_count;
- +--------------------------------------+
- | @@validate_password_mixed_case_count |
- +--------------------------------------+
- | 1 |
- +--------------------------------------+
- 1 row in set (0.00 sec)
- mysql> set global validate_password_mixed_case_count=2;
- Query OK, 0 rows affected (0.00 sec)
- mysql> select @@validate_password_mixed_case_count;
- +--------------------------------------+
- | @@validate_password_mixed_case_count |
- +--------------------------------------+
- | 2 |
- +--------------------------------------+
- 1 row in set (0.00 sec)
- mysql> select @@validate_password_length;
- +----------------------------+
- | @@validate_password_length |
- +----------------------------+
- | 6 |
- +----------------------------+
- 1 row in set (0.00 sec)

当然,前提是validate_password插件必须已经安装,MySQL5.7是默认安装的。
那么如何验证validate_password插件是否安装呢?可通过查看以下参数,如果没有安装,则输出将为空。

- mysql> SHOW VARIABLES LIKE 'validate_password%';
- +--------------------------------------+-------+
- | Variable_name | Value |
- +--------------------------------------+-------+
- | validate_password_dictionary_file | |
- | validate_password_length | 6 |
- | validate_password_mixed_case_count | 2 |
- | validate_password_number_count | 1 |
- | validate_password_policy | LOW |
- | validate_password_special_char_count | 1 |
- +--------------------------------------+-------+
- 6 rows in set (0.00 sec)

【转】ERROR 1819 (HY000): Your password does not satisfy the current policy requirements的更多相关文章
- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log. 一般可通 ...
- 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 ...
- 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 ...
- 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. 一般可通 ...
- 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 ...
- 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 ...
- mysql修改密码Your password does not satisfy the current policy requirements
出现这个问题的原因是:密码过于简单.刚安装的mysql的密码默认强度是最高的,如果想要设置简单的密码就要修改validate_password_policy的值, validate_password_ ...
- Your password does not satisfy the current policy requirements
创建用户,做测试想设置一个简单的密码.报错: 大概是MySQL5.7搞事情,默认安装了validate_password插件. mysql> SHOW VARIABLES LIKE 'valid ...
- Your password does not satisfy the current policy requirements问题解决方法
运行 mysql>set validate_password_policy=0; 目的是,可以设置弱密码.
随机推荐
- PostgreSQL-4-DML数据操纵语言
1.查询语句 \h SELECT 查看SELECT语句说明 基本语法 SELECT column1, column2, columnN FROM table_name; 查询单列/多列数据 SEL ...
- 相册选择头像或者拍照 上传头像以NSData 图片二进制格式 表单上传
一.点击头像图片 或者按钮 在相册选择照片返回img,网络上传头像要用data表单上传 (1)上传头像属性 // 图片二进制格式 表单上传 @property (nonatomic, strong) ...
- 抛出异常-throws和throw
package com.mpp.test; import java.util.Scanner; public class TryDemoFour { public static void main(S ...
- 如何使用程序调用webApi接口
如何使用程序调用webApi接口 在C#中,传统调用HTTP接口一般有两种办法: WebRequest/WebResponse组合的方法调用 WebClient类进行调用. 第一种方法抽象程度较低,使 ...
- Java三种技术架构
http://blog.csdn.net/weixin_36416990/article/details/52845868
- mysql设置自增长列的当前值
-- 查看表中自增长列的当前值 SELECT Auto_increment FROM information_schema.`TABLES` WHERE Table_Schema='rhr' AND ...
- 12.JAVA-基本数据类型的包装类操作
1.基本数据类型的包装类 java是一个面向对象编程语言,也就是说一切操作都要用对象的形式进行.但是有个矛盾: 基本数据类型(char,int,double等)不具备对象特性(不携带属性和方法) 这样 ...
- RK3288开发过程中遇到的问题点和解决方法之Devices
分区大小和“多用户支持” \device\rockchip\common\BoardConfig.mk BUILD_WITH_UMS ?= true改为BUILD_WITH_UMS ?= false ...
- 明白这十个故事-->你也就参悟了人生 .
1.断箭 不相信自己的意志,永远也做不成将军. 春秋战国时代,一位父亲和他的儿子出征打仗.父亲已做了将军,儿子还只是马前卒.又一阵号角吹响,战鼓雷鸣了,父亲庄严地托起一个箭囊,其中插着一只箭.父亲郑 ...
- LR中常见请求的使用示例
Action(){ //application/x-www-form-urlencoded //application/json //web_add_auto_header("Content ...