Mysql忘记密码重置及填坑详解

先设置跳过密码登录

vi /etc/my.cnf

进入之后在 【mysqld】间加入

skip-grant-tables

之后ESC退出。:wq保存退出。

–重启服务

service mysqld restart 

–切换到mysql用户

mysql -u root
use mysql

在这里插入图片描述
–update mysql.user set authentication_string=password(‘root_password’) where user=‘root’;
在这里插入图片描述
在新的版本中已经没有password字段了,改为了authentication_string,password函数也不支持了。
需要用alter table 方式修改密码。

–grep ‘temporary password’ /var/log/mysqld.log
在这里插入图片描述
可以看到临时密码 为Uboe8SfiIr-C
使用临时密码登录root

mysql -u root -p

在这里插入图片描述
在这里插入图片描述
–此时提示密码不安全,mysql初始要求密码为8位,包含大小字母及数字,特殊字符。这里暂时使用’Aa12345!’;
修改密码策略的文章很多,在这里不赘述了。
在这里插入图片描述
这里又提示账户有问题,可以通过mysql.user的host看到,root的host为%,
在这里插入图片描述
所以应该改为
在这里插入图片描述
这里就成功了,然后刷新一下

flush privileges;
exit;
vi /etc/my.cnf

删掉刚才的跳过密码登录的代码段。

退出之后重启一下服务。
service mysqld restart;


其他问题

ERROR 1396 (HY000): Operation ALTER USER failed for ‘root’@’%’
在改为%之后,还可能出现该报错。

update user set authentication_string=’ ’ where user=‘root’;
flush privileges;
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
将authentication_string 置空之后,再进行修改密码。


  • 原因还不清楚,水平有限。如有任何错误或问题,欢迎留言向您学习讨论。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值