mysql8.0以上的版本忘记root密码如何重置

转载自网络蚂蚁大大的https://www.cnblogs.com/jjg0519/p/9034713.html

作者还举例了过程中遇到的问题,比如password字段及其函数 ,最新的版本已经不可用了。

安装完 最新版的 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  

mysql8.0以上的版本忘记root密码如何重置_第1张图片

1.3 重启mysql服务:
 

  1. service mysqld restart  

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

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

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

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

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

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

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

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

plugin: 密码加密方式;

mysql8.0以上的版本忘记root密码如何重置_第2张图片

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

  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为空,所以可以免密码登录;

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

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

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

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

你可能感兴趣的:(数据库)