Linux MySQL5.7 初始密码

Linux MySQL5.7 初始密码,第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 。

一般可通过 log_error 设置

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

其中 waQ,qR%be2(5 就是密码了

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

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

这个其实与validate_password_policy的值有关。

validate_password_policy有以下取值:

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

必须修改两个全局参数

首先,修改 validate_password_policy 参数的值

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

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

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

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

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

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

这是 mysql 初始化时,使用临时密码,修改自定义密码时,由于自定义密码比较简单,就出现了不符合密码策略的问题。

执行 SELECT PASSWORD ()

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

1、查看 mysql 初始的密码策略,

输入语句 “ SHOW VARIABLES LIKE ‘validate_password%’” 进行查看,

2、首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,

输入设值语句 “ set global validate_password_policy=LOW” 进行设值,

3、当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,

输入设值语句 “ set global validate_password_length=6” 进行设值,

4、现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,

输入修改语句 “ ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’” 可以看到修改成功,表示密码策略修改成功了!!!

注:在默认密码的长度最小值为 4 ,由 大/小写字母各一个 + 阿拉伯数字一个 + 特殊字符一个,

只要设置密码的长度小于 3 ,都将自动设值为 4 ,

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 整个密码中至少要包含特殊字符的个数;

1、打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址

2、打开 cmd 命令提示符, 转到上一步中 mysql. exe 所在的文件夹。

3、输入命令  mysqld --skip-grant-tables  回车,此时就跳过了mysql的用户验证。注意: 输入此命令后, 无法 *** 作命令行, 您可以在此时打开一个新的命令行。注意: 在输入此命令之前, 请在任务管理器中结束 mysqld. exe 进程, 以确保 MySQL 服务器端已完成运行

4、更改root密码,输入update user set password=password('123456') where user='root' and host='localhost'

5、再次查看账户信息,select user,host,password from user  可以看到密码已被修改。

6、退出命令行, 重新启动 MySQL 数据库, 然后尝试使用新密码登录。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8523585.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存