首先不要慌,深呼吸,天塌下来有武大郎顶着,关闭Mysql服务: service mysqld stop,修改配置文件my.cnf:mysqld 下增加一行 skip-grant-tables ,重启Mysql服务:service mysqld start,现在不用密码也可登录了。
接着免密登录:mysql -u root 或者 mysql ; 选中系统自带库:use mysql ;
修改密码为空值 :update user set authentication_string = '' where user = 'root'; 并退出:quit;
接着我们把配置文件中添加的 skip-grant-table 删除掉,重启mysql服务,现在我们已经可以正常登录数据库了:mysql -u root -p , enter password 敲击回车即可。
查看密码策略:SHOW VARIABLES LIKE 'validate_password%';
validate_password.length 固定密码的总长度
validate_password.dictionary_file 密码验证的文件路径
validate_password.mixed_case_count 整个密码中至少要包含大/小写字母的总个数
validate_password.number_count 整个密码中至少要包含阿拉伯数字的个数
validate_password.policy 密码的强度验证等级,默认为 MEDIUM
关于 validate_password.policy 的取值
0 / LOW:只验证长度
1 / MEDIUM:验证长度、数字、大小写、特殊字符
2 / STRONG:验证长度、数字、大小写、特殊字符、字典文件
validate_password.special_char_count 整个密码中至少要包含特殊字符的个数
(可不改直接跳过)修改策略简单密码:
set global validate_password_policy=LOW;
set global validate_password_length=6;
最后根据策略修改密码:ALTER USER 'root'@'%' IDENTIFIED BY '123456' ;
可能出现的报错: host 错误
解决:select user,host from user; 根据结果修改:‘root’@'localhost' ---> 'root'@'%' 即可