
为了加强安全性,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 插件是否安装呢?可通过查看以下参数,如果没有安装,则输出将为空。
在user权限表的authentication_string字段中。mysql的临时密码放在user权限表的authentication_string字段中。user表是MySQL中最重要的一个权限表,用来记录允许连接到服务器的账号信息。
修改用户临时密码时,实际就是修改user表中authentication_string字段的值。
如果你忘记了root密码,可以通过如下方法重置:1.用root或者运行mysqld的用户登录系统;
2.利用kill命令结束掉mysqld的进程;
3.使用–skip-grant-tables参数启动MySQL Server
#mysqld_safe –skip-grant-tables &
4.然后用空密码方式使用root用户登录 MySQL;mysql -u root
5.为root@localhost设置新密码
mysql>update mysql.user set password=PASSWORD('新密码') where User='root'mysql>flush privileges;mysql>quit
6. 重新启动MySQL
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)