MySQL里忘了root密码咋整,能不能直接复位啊,求个简单方法讲讲
- 问答
- 2026-01-11 14:09:37
- 2
让MySQL服务器“跳过”检查密码的那个步骤,这样我们不用密码就能进去,然后进去之后再改密码,听起来有点绕,但操作起来一步步跟着做就行。
第一步:先把MySQL服务停下来
你想啊,MySQL正在正常运行的时候,它肯定要看你的密码对不对,所以咱们得先让它停下来,然后在启动的时候告诉它一个特别的指令,停掉服务的方法因你的操作系统而异。
如果你用的是Windows系统,最简单的方法是打开“任务管理器”,找到“服务”选项卡,在里面找一个名字叫“MySQL”或者“MySQL57”、“MySQL80”之类的服务(具体名字看你安装的版本),右键点击它,选择“停止”。
如果你习惯用命令行,可以按Win+R键,输入cmd回车,然后在黑窗口里输入:
net stop mysql
(这里的mysql也要换成你那个服务的具体名字,如果net stop mysql不行,你就得去任务管理器里看看准确的服务名是啥)。
如果你用的是Mac或者Linux系统,需要打开“终端”(Terminal),然后输入命令,通常停服务的命令是:
sudo systemctl stop mysql
或者老一点系统的命令可能是:
sudo service mysql stop
输入之后会让你输电脑的开机密码,输完密码服务就停了。
第二步:创建一个临时文件,告诉MySQL跳过密码验证

现在MySQL服务停了,我们要创建一个文本文件,在里面写一行命令,这行命令的意思就是告诉MySQL:“等下启动的时候,别加载那些管权限的模块了。”这样它就不会问我们要密码了。
找个你熟悉的位置创建这个文件,比如就在桌面上创建一个文本文件,名字随便起,比如叫reset_password.txt,然后用记事本(Windows)或文本编辑(Mac)打开它,只输入下面这一行内容:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
注意:先别急! 现在先不要写你的新密码,这个文件我们待会儿有两种用法,为了保险起见,我建议你这一步先把这个文件空着,什么都不写,等会儿我会告诉你在哪一步输入这行命令更安全,你先创建一个空的reset_password.txt文件放在那儿就行。
第三步:以特殊方式启动MySQL
关键的一步来了,我们要启动MySQL,但是在启动的同时,告诉它两件事:1. 跳过权限验证;2. 去执行我们刚才创建的那个文件里的命令(即使现在是空的)。
再次打开你的命令行窗口(Windows是cmd,Mac/Linux是终端)。

对于Windows系统,输入类似下面的命令(非常重要:你需要根据你的MySQL安装路径修改):
mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 8.0\my.ini" --init-file="C:\Users\你的用户名\Desktop\reset_password.txt" --skip-grant-tables
解释一下:
--defaults-file:后面跟着你的MySQL配置文件my.ini的完整路径,这个路径不一定跟我写的一样,你得自己去找到它,它通常在你MySQL的安装目录下。--init-file:后面跟着你刚才创建的reset_password.txt文件的完整路径,比如你放在桌面,就写桌面的路径。--skip-grant-tables:这就是“跳过权限检查”的指令。
对于Mac或Linux系统,命令类似:
sudo mysqld_safe --skip-grant-tables --init-file=/home/你的用户名/Desktop/reset_password.txt &
(同样,需要把文件路径换成你实际存放的位置)。
输入命令回车后,命令行窗口可能会好像卡住了,或者出现一些启动日志,这通常是正常的,表示MySQL正在以这种特殊模式运行。这个窗口千万不要关闭,让它一直开着。
第四步:无密码登录并修改密码
再打开一个新的命令行窗口(让刚才那个窗口继续运行),在这个新窗口里,输入登录MySQL的命令:
mysql -u root
你会发现,这次它没有问你密码,直接就进去了!提示符会变成mysql>。

我们手动来修改密码,在mysql>提示符后面,输入你在第二步准备好的那行命令(看,在这里直接输入比写在文件里更直观):
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
把你的新密码换成你想设的复杂点的密码,然后按回车。
如果系统提示Query OK,那就表示密码修改成功了!
第五步:恢复正常并重启MySQL
密码改好了,现在我们要让MySQL恢复正常,回到之前那个运行着mysqld的命令行窗口,按Ctrl + C键把它强制关闭,这样MySQL服务就又停了。
像第一步那样,用正常方式重新启动MySQL服务,Windows就用net start mysql,Mac/Linux就用sudo systemctl start mysql。
服务启动后,你就可以用新密码登录了:
mysql -u root -p
回车后,输入你刚设的新密码,就应该能成功进入了。
最后总结和提醒一下:
- 这个方法的关键在于
--skip-grant-tables这个参数,它让密码暂时失效。 - 操作前最好备份一下重要数据,虽然这个操作一般不会动数据,但以防万一。
- 整个过程中,路径一定要写对,这是最容易出错的地方。
- 改完密码后,记得把那个
reset_password.txt临时文件删掉,以免留下安全风险。
希望这个“简单方法”能帮你解决问题!一步一步来,没问题的。
本文由邝冷亦于2026-01-11发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/78728.html