Windows本地MySQL数据库密码忘记,如何处理?(本人成功全流程,查询摸索总结)

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

这样就完成了数据库的密码重置了!恭喜!

本地环境中查看 MySQL 数据库密码通常不是通过直接“查看”密码的方式实现的,因为数据库密码以加密形式存储在系统中,无法直接解密。然而,可以通过以下几种方式尝试恢复或重置 MySQL 数据库密码。 ### 1. 查看 MySQL 日志文件 在某些 Linux 系统中,MySQL 安装时会生成一个临时密码并记录在日志文件中。可以通过以下命令查找临时密码: ```bash cat /var/log/mysqld.log | grep password ``` 此命令会显示日志文件中包含 "password" 的行,其中可能包含初始密码[^1]。 ### 2. 重置 MySQL 密码 如果忘记MySQL密码,可以通过以下步骤重置: #### 步骤一:停止 MySQL 服务 在 Linux 系统中,可以使用以下命令停止 MySQL 服务: ```bash sudo systemctl stop mysqld ``` #### 步骤二:启动 MySQL 安全模式 使用以下命令启动 MySQL 的安全模式(跳过权限检查): ```bash sudo mysqld_safe --skip-grant-tables & ``` #### 步骤三:连接到 MySQL 在安全模式下,可以无需密码连接到 MySQL: ```bash mysql -u root ``` #### 步骤四:更新密码MySQL 提示符下,使用以下命令更新密码。注意,不同版本的 MySQL 可能需要不同的语法: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_PASSWORD BY '新密码'; ``` 或者在较旧版本的 MySQL 中,可能需要使用以下命令: ```sql UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root' AND Host='localhost'; ``` 执行完成后,退出 MySQL 并重新启动服务: ```bash sudo systemctl restart mysqld ``` ### 3. 检查 MySQL 配置文件 在某些情况下,MySQL 的配置文件(如 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`)中可能会包含连接数据库所需的凭证信息。可以使用以下命令查看配置文件内容: ```bash cat /etc/my.cnf ``` 或 ```bash cat /etc/mysql/my.cnf ``` ### 4. 使用 MySQL 客户端工具 某些 MySQL 客户端工具(如 phpMyAdmin 或 MySQL Workbench)可能会存储连接信息,包括密码。如果之前使用这些工具连接过数据库,可以检查其配置文件或连接历史记录。 ### 注意事项 - **安全性**:直接查看或重置数据库密码可能会带来安全风险,建议在操作前备份重要数据。 - **版本差异**:不同版本的 MySQL 在语法和功能上可能存在差异,操作时需根据实际情况调整。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值