Windows本地MySQL数据库密码忘记,如何处理?
查了很多的资料,都是乱的。我通过反复尝试,最终成功了。
第一步:
进入 MySQL Server 安装目录的 bin 文件夹。
例如我的:C:\Program Files\MySQL\MySQL Server 8.0\bin
命令:cd /
首先回到原始目录下;
命令:cd C:‘Program Files’\MySQL\ ‘MySQL Server 8.0’\bin
注意这里的细节,带有空格的目录名字,必须使用英文格式的 ‘’ 框起来,否则命令会出错。

第二步:
通过‘跳过权限验证’的模式启动 MySQL Server
命令:mysqld --skip-grant-tables
一般会报错,但是有些电脑不一定会报错。如果报错,类似下图,大概率是Data文件夹路径错误。

那就找到自己电脑的安装的时候,自动生成的Data目录在哪里,比如我的电脑是自动生成了一个目录,在 C:\ProgramData\MySQL\MySQL Server 8.0\Data 这里。
要加入Data数据目录地址。
命令:mysqld --console --datadir=“C:\ProgramData\MySQL\MySQL Server 8.0\Data” --skip-grant-tables --shared-memory
如果又报错,出现下面这个类似提示,说明你的MySQL Server服务启动了,你需要先停止这个服务。

停止MySQL Server服务:
不知道自己的服务名称的,可以通过 win + R 输入services.msc 进入服务管理。

不同的电脑,服务的进程名字不一样。

在cmd或者PowerShell通过命令停止服务。
命令:net stop mysql80
其中mysql80是我的服务名称,你的不一定是这个,你要输入自己的电脑对应服务名称。

这个时候,再次输入命令,通过‘跳过权限验证’的模式启动 MySQL Server
一般命令:mysqld --skip-grant-tables
出现Data报错,切换执行下面的命令。
命令:mysqld --console --datadir=“C:\ProgramData\MySQL\MySQL Server 8.0\Data” --skip-grant-tables --shared-memory
注意这里 --datadir=“C:\ProgramData\MySQL\MySQL Server 8.0\Data”,这 " " 中间的地址为你数据库Data数据目录地址。你要自己找到先。

出现这个页面,就说明通过‘跳过权限验证’的模式启动 MySQL Server成功了。
这个时候,不要关闭这个命令窗口。
重新打开一个新的cmd或者PowerShell窗口。
第三步:
如果已经添加过系统路径,可以直接在根目录下输入命令。(添加系统路径可以查阅相关文档)
命令:mysql -u root
直接无密码状态进入数据库。

如果没有添加过系统路径,可以按照第一步的说明,先进入bin目录。再输入命令。
命令:mysql -u root
直接无密码状态进入数据库。

第四步
这一步就很关键了,我看了很多篇文章,到这里都无法很好的指导新人如何操作,我自己在实践和查询中摸索出的一个切实可用的流程是下面这样的。
备注:数据库执行命令,一定注意大小写的区别。
首先,手动更新密码字段。
1.先清空 root 密码
在mysql数据库里面执行下面命令。
命令:UPDATE mysql.user SET authentication_string = ‘’ WHERE User = ‘root’;

注意大小写的区别。
2.刷新权限
同样的在mysql数据库里面执行下面命令,刷新更新的权限信息。
命令:FLUSH PRIVILEGES;

3.退出 MySQL
同样的在mysql数据库里面执行下面命令,退出当前数据库的操作。
命令:exit

4.打开第二步执行成功的cmd或者PowerShell窗口。停止前面通过‘跳过权限验证’的模式启动的 MySQL Server。
停止方式:
在cmd或者PowerShell窗口里面,操作键盘:ctrl + C
连续两次操作,直到成功退出运行的MySQL Server。

第五步:
到这一步,就算是成功了。这个时候,就只需要正常启动MySQL Server服务。然后去重新设置密码即可。
正常重启 MySQL Server服务,执行以下命令。
命令:net start mysql80
其中mysql80是我的MySQL Server服务名称,你的不一定是这个,你要输入自己的电脑对应服务名称。
在第二步查询到的MySQL Server服务名称。

按照第三步的指导,直接使用无密码登录MySQL数据库,命令执行方式参照第三步的指导。

再通过数据库命令,ALTER USER 来正式设置数据库root的登录密码。命令如下。
命令:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘Aa123456’;
其中:‘Aa123456’,这中间的密码,你自己自由设定,一定要记住。设置好之后,下次登录数据库就要用这个密码了。

好了,到了这里就可以退出 MySQL了。
同样的在mysql数据库里面执行下面命令,退出当前数据库的操作。
命令:exit
这样就完成了数据库的密码重置了!恭喜!
1万+






