linux环境下Mysql8.0忘记密码

首先不要慌,深呼吸,天塌下来有武大郎顶着,关闭Mysql服务: service mysqld stop,修改配置文件my.cnf:mysqld 下增加一行 skip-grant-tables ,重启Mysql服务:service mysqld start,现在不用密码也可登录了。

linux环境下Mysql8.0忘记密码

 

 接着免密登录:mysql -u root 或者 mysql  ;  选中系统自带库:use mysql ;  

linux环境下Mysql8.0忘记密码

 

 修改密码为空值 :update user set authentication_string = '' where user = 'root';  并退出:quit;

linux环境下Mysql8.0忘记密码

 

接着我们把配置文件中添加的 skip-grant-table 删除掉,重启mysql服务,现在我们已经可以正常登录数据库了:mysql -u root -p , enter password 敲击回车即可。

linux环境下Mysql8.0忘记密码

 

查看密码策略:SHOW VARIABLES LIKE 'validate_password%';

linux环境下Mysql8.0忘记密码

 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 错误

linux环境下Mysql8.0忘记密码

解决:select user,host from user;   根据结果修改:‘root’@'localhost'  --->  'root'@'%'  即可

 linux环境下Mysql8.0忘记密码

 

上一篇:MySQL修改密码策略、密码安全等级


下一篇:Centos7安装MySQL-5.7