Linux MySQL5.7 初始密码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux MySQL5.7 初始密码相关的知识,希望对你有一定的参考价值。

参考技术A 本文转自 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 插件是否安装呢?可通过查看以下参数,如果没有安装,则输出将为空。

Linux Mysql root密码忘记,初始化

  前段时间一个测试环境的mysql数据库的root密码找不到了,一个不重要的库,安装人员估计疏忽了...手动把密码恢复了一下。记录下来做个备注

1、进入my.cnf ,在[mysqld]字段中添加   skip-grant-tables

2、重启mysql服务   service mysqld restart

3、无密码进入mysql修改密码

mysql -uroot -p

mysql > update mysql.user set PASSWORD=password(‘new password‘) where user=‘root‘

mysql>flush privileges

mysql>quit

4、删除mysql.cnf中的 skip-grant-tables

5、重启mysql服务

service mysqld restart

搞定!

 

以上是关于Linux MySQL5.7 初始密码的主要内容,如果未能解决你的问题,请参考以下文章

Centos8安装mysql5.7,修改mysql初始密码,使root可以访问远程主机. install mysql5.7 in Centos8, and change mysql initial p

mysql5.7 查看初始密码和修改

MYSQL5.7.17设置初始密码(转)

自动修改mysql5.7初始化密码

MySQL5.7初始密码问题

mysql5.7初始密码及设置问题