Centos7重置Mysql 8.0.1 root 密码

转:https://www.cnblogs.com/jjg0519/p/9034713.html

问题产生背景:

安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下:

第一步:修改配置文件免密码登录mysql

[html] view plain copy

 

  1. vim /etc/my.cnf  

1.2 在 [mysqld]最后加上如下语句 并保持退出文件;

[html] view plain copy

 

  1. skip-grant-tables  

1.3 重启mysql服务:
 

[html] view plain copy

 

  1. service mysqld restart  

第二步免密码登录到mysql上;直接在命令行上输入:

[html] view plain copy

 

  1. mysql  
  2. //或者  
  3. mysql -u root -p   
  4. //password直接回车  

第三步: 给root用户重置密码;

3.1 首先查看当前root用户相关信息,在mysql数据库的user表中;

[html] view plain copy

 

  1. select host, user, authentication_string, plugin from user;  

host: 允许用户登录的ip‘位置’%表示可以远程;

user:当前数据库的用户名;

authentication_string: 用户密码;在mysql 5.7.9以后废弃了password字段和password()函数;

plugin: 密码加密方式;

3.2 如果当前root用户authentication_string字段下有内容,先将其设置为空;

[html] view plain copy

 

  1. use mysql;  
  2. update user set authentication_string='' where user='root';  

3.3 退出mysql, 删除/etc/my.cnf文件最后的 skip-grant-tables 重庆mysql服务;

3.4 使用root用户进行登录,因为上面设置了authentication_string为空,所以可以免密码登录;

[html] view plain copy

 

  1. mysql -u root -p  
  2. passwrod:直接回车;  

3.5使用ALTER修改root用户密码;

[html] view plain copy

 

  1. ALTER user 'root'@'localhost' IDENTIFIED BY 'Qian123#'  

至此修改成功; 从新使用用户名密码登录即可;

 

修改中遇到的问题:

1. 根据网上的这篇文章进行修改,报错;

网友文章:Linux-CentOS7下修改root密码和密码过期问题

在使用这句话修改密码时报错:

[html] view plain copy

 

  1. update user set password = password('new-password') where user = 'root' ;   
  2.   
  3. or  
  4.   
  5. update user set authentication_string= password('new-password') where user = 'root' ;   

报错原因:mysql5.7.6以后废弃了user表中的password字段和 password() 方法;

所以上面的方法对 mysql8.0.1是行不通的;

 

2. 根据网友的这篇文章进行修改,报错;

网友文章: 修改MySQL 5.7.9版本的root密码方法以及一些新变化整理

3. 参考MYSQL8的官网文档, 感觉写的也很水;

MySQL8官网文档: mysql8.0 reference for manual

4. 一定不要采取如下形式该密码:

[html] view plain copy

 

  1. use mysql;  
  2. update user set authentication_string="newpassword" where user="root";  

这样会给user表中root用户的authentication_string字段下设置了newpassword值;

当再使用ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'时会报错的;

因为authentication_string字段下只能是mysql加密后的41位字符串密码;其他的会报格式错误;

*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值