MySQL8.0 忘记密码

转载请注明出处,如果您觉得文章有用,就赏我个鸡腿吧!

正文

  1. 添加mysql不鉴权命令
vim /etc/my.cnf
#在[mysqld]下添加
skip-grant-tables
#保存退出
  1. 重启mysqld
systemctl restart mysqld
  1. 进入mysql服务
mysql -uroot -p
#直接按回车进入,无需密码
  1. 重设密码
flush privileges; ①
alter user 'root'@'localhost' identified by 'yourpassword'
flush privileges;
  1. 重启mysqld
systemctl restart mysqld

好了,以上就是重设mysql密码的步骤

扩展知识

  1. 在设置密码时,如果密码太短,或者密码强度不达标时,会报错
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    这是因为在validate_password*的参数在校验密码强度,此时可以通过修改该值来解决问题。
    set global validate_password.policy=0;
    其他参数参考上述方法设置
字段8.0默认值意义
validate_password.check_user_nameON设置为ON的时候表示能将密码设置成当前用户名
validate_password.dictionary_file用于检查密码的字典文件的路径名,默认为空
validate_password.length8密码的最小长度,也就是说密码长度必须大于或等于8
validate_password.mixed_case_count1如果密码策略是中等或更强的,validate_password要求密码具有的小写和大写字符的最小数量。对于给定的这个值密码必须有那么多小写字符和那么多大写字符。
validate_password.number_count1密码必须包含的数字个数
validate_password.policyLOW密码强度检验等级,可以使用数值0、1、2或相应的符号值LOW、MEDIUM、STRONG来指定。
0/LOW:只检查长度。
1/MEDIUM:检查长度、数字、大小写、特殊字符。
2/STRONG:检查长度、数字、大小写、特殊字符、字典文件。
validate_password.special_char_count1密码必须包含的特殊字符个数

①: 先要执行flush privileges是因为,重启时skip-grant-tables命令导致权限表没有加载,使用其加载权限表,之才可以修改,否则会报错如下:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值