MySQL5.7忘记root密码-手动修改密码教程

本文介绍在Windows10环境下,当忘记MySQL5.7的root密码时,如何通过命令行方式重置密码。步骤包括停止MySQL服务、修改配置文件以跳过密码验证、登录数据库并更新root用户的密码。

MySQL 5.7相对于MySQL 5.6在应用上发生了一些新的变化,这里就MySQL5.7忘记root密码情况下,手动去修改root密码做一些介绍。

操作系统:Windows10 

数据库版本:MySQL 5.7.20

1.Windows10命令行下,进入MySQL数据库输入错误密码报错

MySQL安装路径已经添加到系统环境变量中的情况,直接输入命令:

mysql - u root -p

再输入密码错误时会报错:

2.先停止MySQL服务

直接输入命令:

net stop MySQL57

这里注意检查你的MySQL服务名词是否是MySQL57,否则会报服务名无效错误哦。可以去系统服务里面查看,其实可以在系统服务里右键直接停止服务,我们这里为了全程使用命令行模式,就往下继续啦~

很奇怪的是,服务名没错,还是不能启动MySQL服务! 
提示发生系统错误 5;拒绝访问!

其实切换到管理员模式就可以启动了。

注意:必须以管理员身份运行MySQL服务,否则会提示:发生系统错误 5;拒绝访问!

3.修改参数文件跳过密码验证

有人建议使用mysqld –skip-grant-tables启动MySQL服务,结果可能出现报错:

解决方法是:

找到MySQL安装路径下的my.ini配置文件文件在[mysqld]节点下方添加:

skip-grant-tables = true

有些没找到my.ini配置文件,因为my.ini配置文件默认和安装目录不在一起,可以全局搜一下。

我的配置文件的路径是C:\ProgramData\MySQL\MySQL Server 5.7\my.ini

默认安装路径是:C:\Program Files\MySQL\MySQL Server 5.7\bin

保存文件后,需要重启服务:

net start MySQL57


 

4.修改密码

用户登录,直接输入:

 

mysql -u root

直接回车就可以进入到数据库了。

再执行命令修改密码:

update mysql.user set password = password('123456') where user='root';

 

 这里注意一下:

在MySQL5.7里面没有“password”这个字段,使用的是“authentication_string”字段,直接执行命令

update mysql.user set authentication_string = password('123456') where user='root';

可以看到执行成功了,密码修改为123456。

还需要执行筛选权限的命令:flush privileges;

5.验证使用修改后的密码登录数据库

在验证新密码是否成功之前,可以先将配置文件中新添加的跳过密码验证的参数去除,然后在重启MySQL服务。

同样可以使用命令来验证,不使用密码是能否登录数据库。

最后使用新密码来登录数据库,可以成功。

到这里纠结束了,希望对一些遇到类似问题的人有帮助。

 

<think> 首先,用户的问题是基于之前的引用材料,这些引用是关于在Windows系统下忘记MySQL 5.7 root密码的解决方案。我需要参考这些引用来提供一个清晰的解决方案。引用内容如下: - 引用[1]:包括关闭MySQL服务、修改my.ini文件添加skip-grant-tables、重启服务、登录MySQL重置密码等步骤。 - 引用[2]:提到在Windows下修改root密码的暴力方法。 - 引用[3]:显示一个错误场景,但没有具体步骤。 - 引用[4]:给出了具体的SQL命令重置密码。 用户的问题明确是:“我想查找在Windows系统下忘记MySQL 5.7数据库root密码的解决方案 请问Windows系统下忘记MySQL 5.7数据库root密码的解决办法”,所以我需要综合这些引用提供步骤。 系统级指令要求: - 所有行内数学表达式必须使用$...$格式,但在这个上下文中,可能没有数学表达式,所以我可以忽略或确保如果有的话正确格式化。 - 独立公式用$$...$$,同样,这里可能没有。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题:在结束时,添加相关问题部分。 - 回答中引用的段落末尾自然地添加引用标识:[^n]。 用户可见层要求:回答结构清晰,逐步解决问题,保证真实可靠。 结构化回答:我应该提供一步一步的解决方案,基于引用材料。确保引用正确。 关键步骤从引用[1]: 1. 关闭MySQL服务。 2. 修改my.ini文件,添加skip-grant-tables。 3. 重启MySQL服务。 4. 登录MySQL(不需要密码)。 5. 运行SQL命令更新密码。 6. 移除skip-grant-tables,关闭服务,修改文件,重启服务。 引用[4]提供了具体的SQL命令:update mysql.user set authentication_string=password('新密码') where user='root' and Host='localhost'; 在MySQL 5.7中,密码存储在authentication_string字段中。 确保步骤完整: 1. 关闭MySQL服务:通过任务管理器或命令行。 2. 找到my.ini文件(通常在MySQL安装目录下)。 3. 添加skip-grant-tables到[mysqld]部分。 4. 保存文件并重启MySQL服务。 5. 打开命令行,切换到MySQL bin目录(如果需要),登录MySQLmysql -u root 6. 运行SQL:use mysql; 然后更新密码7. 退出MySQL。 8. 关闭MySQL服务,移除skip-grant-tables,保存my.ini文件。 9. 重启MySQL服务,并使用新密码登录。 添加引用标识:当引用具体步骤时,添加[^1], [^4]等。 相关问题:在结束时生成相关问题,基于主题。 相关问题示例: 1. 如何在Linux系统下重置MySQL root密码? 2. MySQL 8.0的密码重置方法有什么不同? 3. 如何防止忘记密码的情况发生? 使用中文回答。 最终回答结构: - 简明介绍问题。 - 步骤序列,清晰编号。 - 结束时添加相关问题部分。 </think> ### Windows系统下忘记MySQL 5.7 root密码的解决方案 在Windows系统下,如果您忘记MySQL 5.7root密码,可以通过以下步骤重置密码。该方法基于修改配置文件以跳过密码验证,然后通过SQL命令更新密码。整个过程分为几个主要阶段:关闭MySQL服务、修改配置文件、重启服务并登录、重置密码,最后恢复配置。请确保以管理员身份操作,以避免权限问题。以下是详细步骤(参考自相关引用资料[^1][^4])。 #### 步骤详解 1. **关闭MySQL服务**: 确保MySQL服务已停止。如果服务正在运行,需要手动关闭: - 按下`Win + R`键,输入`services.msc`打开服务管理器。 - 在列表中找到`MySQL`或`MySQL57`服务(具体名称可能因安装版本而异)。 - 右键选择“停止”以关闭服务。如果服务已停止,可跳过此步[^1]。 2. **修改MySQL配置文件**(my.ini): 配置文件`my.ini`通常位于MySQL安装目录下(例如`C:\Program Files\MySQL\MySQL Server 5.7\`)。 - 用记事本或其他文本编辑器打开`my.ini`文件。 - 在`[mysqld]`部分添加一行: ``` skip-grant-tables ``` 此设置允许跳过密码验证。 - 保存文件并关闭编辑器[^1][^4]。 3. **重启MySQL服务并登录MySQL**: - 返回服务管理器,重新启动MySQL服务(右键选择“启动”)。 - 打开命令提示符:按下`Win + R`,输入`cmd`并按Enter。 - 切换到MySQL的`bin`目录(例如`cd C:\Program Files\MySQL\MySQL Server 5.7\bin`)。 - 输入以下命令登录MySQL(无需密码): ``` mysql -u root ``` 成功登录后,命令行提示符变为`mysql>`[^1][^4]。 4. **重置root密码**: 在MySQL命令行中,执行以下SQL命令更新密码(将`新密码`替换为您自定义的新密码): ```sql USE mysql; UPDATE user SET authentication_string=password('新密码') WHERE user='root' AND host='localhost'; FLUSH PRIVILEGES; EXIT; ``` 这一步使用`authentication_string`字段存储密码,这是MySQL 5.7的特性。确保密码强度足够(例如大写字母+数字+符号)[^4]。 5. **恢复配置文件并重启服务**: - 退出MySQL后,关闭命令提示符。 - 停止MySQL服务(重复步骤1)。 - 再次打开`my.ini`文件,删除之前添加的`skip-grant-tables`行。 - 保存文件并重启MySQL服务。 - 现在,您可以使用新密码登录:在命令提示符中运行`mysql -u root -p`,输入新密码确认[^1]。 #### 注意事项 - **安全风险**:此方法涉及跳过密码验证,仅应在本地测试或紧急情况下使用。完成后,确保MySQL服务安全运行。 - **兼容性**:本方案针对MySQL 5.7版本。如果使用其他版本(如MySQL 8.0),步骤可能不同(例如密码字段改为`authentication_string`,但命令需调整)[^4]。 - **备份建议**:操作前备份`my.ini`文件,以防配置错误。 - **常见问题**:如果登录失败,检查服务名称是否正确(如`MySQL57`),或确保命令在`bin`目录运行[^3]。 通过以上步骤,您应该能成功重置root密码。如果仍有问题,可参考官方文档或社区论坛。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值