为了加强安全性,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 插件是否安装呢?可通过查看以下参数,如果没有安装,则输出将为空。
或者
初次修改密码时,需要注意的是密码中需要含有字母、数字、特殊字符 (要含有大小字母且长度不能小于8)
关于 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 整个密码中至少要包含特殊字符的个数;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)