admin管理员组文章数量:1612098
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
今天新安装了一个mysql5.7,想自己修改一个新密码,结果总是出现1819这个错误,后面查了一下,是因为mysql5.7对密码有一些新的要求:密码必须要有一定的复杂度。下面我就来解释一下如何修改数据库,让mysql5.7可以接受我们自己的密码“123123”
具体步骤:
- 1、肯定要先安装好mysql5.7的数据库啦,我们最终的目的就是把数据库的密码改成123123。
安装好数据库以后,他会自动生成一个密码,我们可以不管他的密码,在配置文件中加一条语句,如下:
[root@server-10 ~]# vim /etc/myf
skip-grant-tables ##跳过权限表,这样启动数据库以后,就可以无密码登录!
加入条语句以后,我们可以直接用mysql命令进入到数据库!然后可以用update语句修改密码
mysql>update mysql.user set authentication_string=password("123123");
mysql>flush privileges; ##刷新权限表
#这只是第一次修改,注意的是,mysql5.7将密码属性的名称改成了authentication_string,不再是以前的password,我也不知道为什么要改一个这么长的名称,password不挺好的嘛,估计是怕和password()混乱!可以自己用以下语句查看!
mysql> desc mysql.user;
- 然后可以把配置文件中skip-grant-tables去掉,重启mysql服务,用密码123123登录到mysql
mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
#进去以后,不能进行操作,会提示要用alter修改密码
mysql> alter user 'root'@'localhost' identified by '123123';
**ERROR 1819 (HY000): Your password does not satisfy the current policy requirements**
#就是这里,我本来是想直接把密码改成123123的,结果他提示密码不满足要求,后面我有尝试了几次,发现总是不行,一查才知道要改成指定格式的密码!
这个其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
Policy | Tests Performe(要求 |
---|---|
0 or LOW | Length |
1 or MEDIUM | numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters |
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123123.
这是时候,Wimbledon可以在第一次使用进入数据库的时候修改几个全局变量就行,或者再次跳过权限表进入到数据库!
mysql> show variables like "%validate%";
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| query_cache_wlock_invalidate | OFF |
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 | ##密码的最小长度,改成6
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM | #这个改成0,就可以接受简单的密码
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
#修改全局变量
mysql> set global validate_password_length=6;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like "%validate%";
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| query_cache_wlock_invalidate | OFF |
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 6 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
8 rows in set (0.00 sec)
mysql> alter user 'root'@'localhost' identified by '123123'; #重新修改密码,不会再有错误!
Query OK, 0 rows affected (0.01 sec)
总结:这样我们就把数据库的密码修改成了一个简单的密码,但是,mysql5.7新增的这个功能是为了数据库的安全,我们平时自己用数据库可以用比较简单的密码,这样也方便记忆,但是,如果是在公司,密码还是要设置的复杂一点比较好!
版权声明:本文标题:mysql错误详解(1819):ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728629376a1166909.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论