MySQL8.0的忘记密码的处理方法

前言
本人为在校学生,在学习MySQL过程中经常处理一些小问题,关于忘记MySQL密码的问题解决方式让我觉得有必要详细记录一下,因此写下这篇博客同时也是防止以后忘记
部分步骤重在说明,实际流程其实很简洁,跟着操作走即可。


流程目录

  • 1. 首先关闭MySQL服务
  • 2.使用管理员权限打开DOS命令窗口
  • 3.找到mysql安装目录下的bin文件夹
  • 4.在控制台窗口中进入mysql的bin文件夹下
  • 5.1,进入该路径文件
  • 5.2,以上条件满足之后在控制台中输入mysqld --shared-memory --skip-grant-tables
  • 6.以上步骤完成后再打开一个命令窗口
  • 7.进入mysql后首先要进行权限刷新
  • 8.权限刷新成功后随即进行密码更改操作
  • 9.关闭命令端重启服务,之后便可以正常使用了


1. 首先关闭MySQL服务

(这是必须要关的,否则后面操作无法生效)

打开“服务”功能,然后在里面找到如上图所示,并把相应的服务关闭

8.0版本的MySQL就把将这个MySQL80关掉

如果还有其他版本的sql服务,那就全部关闭

mysql8 密码设置 mysql8.0忘记密码_mysql

2.使用管理员权限打开DOS命令窗口

按win键输入cmd,打开命令行窗口时必须要管理员身份运行

3.找到mysql安装目录下的bin文件夹

参考我的文件路径(这个是win10 系统下的8.0版本默认的安装路径)C:\Program Files\MySQL\MySQL Server 8.0\bin

4.在控制台窗口中进入mysql的bin文件夹下

在控制台输入 cd 空格 路径
参考 cd C:\Program Files\MySQL\MySQL Server 8.0\bin

mysql8 密码设置 mysql8.0忘记密码_mysql_02

5.1,进入该路径文件

重点操作,看完这点再执行
运行该命令之前必须要确认在MySQL Server文件夹中存在一个data文件夹(如果有data文件夹则不用运行这串命令),如果没有则先运行这个命令mysqld --initialize-insecure --user=mysql

mysqld --initialize-insecure --user=mysql

mysql8 密码设置 mysql8.0忘记密码_命令窗口_03


等待命令执行片刻后便在MySQL Server目录下生成了一个data文件

如果没有这个文件,下面的命令会报错,所以必须要确定这个文件是否存在;

5.2,以上条件满足之后在控制台中输入mysqld --shared-memory --skip-grant-tables

mysqld --shared-memory --skip-grant-tables

mysql8 密码设置 mysql8.0忘记密码_mysql8 密码设置_04

运行后光标会滞停在第二行,而且窗口标题栏会显示出正在生效的命令,这个代表命令生效了,这个窗口不要关闭,放那里不用管就行了。

6.以上步骤完成后再打开一个命令窗口

在新的命令窗口进入mysql的bin目录下(cd空格路径,和前面进入bin目录操作一样)

然后在新窗口内输入mysql,将跳过密码输入部分,直接进入数据库里面(如果提示输入密码直接回车即可进入数据库内)

如图所示

mysql8 密码设置 mysql8.0忘记密码_MySQL_05

7.进入mysql后首先要进行权限刷新

执行这串命令即可刷新权限
粘贴的不行的话就参考图中手敲下来

FLUSH PRIVILEGES;

mysql8 密码设置 mysql8.0忘记密码_命令窗口_06

8.权限刷新成功后随即进行密码更改操作

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

这段代码在MySQL里面运行
作用为将root用户的密码设置为123456

根据评论中大佬的建议,如果上面密码更改操作出错,就试一下这个

alter user 'root'@'localhost' IDENTIFIED BY '新密码';

9.关闭命令端重启服务,之后便可以正常使用了