mysql密码忘了咋整?教你几招简单找回数据库密码的方法
- 问答
- 2026-01-10 21:16:46
- 4
哎,MySQL密码忘了这事儿,别说新手了,老司机偶尔也会阴沟里翻船,别慌,这绝对不是世界末日,网上有很多热心网友分享过解决方法,比如知乎上就有不少高赞回答,CSDN上更是有详细的步骤教程,下面我就把这些方法给你捋一捋,总有一招能帮你把门敲开。
核心思路就两条:要么绕过密码验证进去改密码,要么直接“暴力”修改密码文件。
第一招:万能钥匙——跳过权限验证(最常用)
这个方法就像是你把锁给拆了,先进屋再说,根据CSDN博客上大量教程的说明,这个方法适用于你还能登录服务器的情况。

步骤是这样的:
-
关掉MySQL服务: 你得让MySQL停下来,方法因操作系统而异。
- 如果你是Windows系统: 在“服务”里找到MySQL,右键点击“停止”,或者用管理员身份打开命令提示符(CMD),输入
net stop mysql(注意,这里的mysql是你的服务名,有时可能是mysql57或mysql80,去服务里看清楚)。 - 如果你是Linux系统: 打开终端,通常是用
sudo systemctl stop mysql或sudo service mysql stop。
- 如果你是Windows系统: 在“服务”里找到MySQL,右键点击“停止”,或者用管理员身份打开命令提示符(CMD),输入
-
创建一个“后门”启动脚本: 这是关键一步,我们需要告诉MySQL:“这次启动,不用检查密码了。”根据多个技术社区的文章,比如知乎用户提到的,我们需要创建一个特殊的启动命令。

- Windows系统: 还是用管理员身份的CMD,切换到你的MySQL的bin目录下,
cd C:\Program Files\MySQL\MySQL Server 8.0\bin,然后输入:mysqld --skip-grant-tables - Linux系统: 在终端里输入:
sudo mysqld_safe --skip-grant-tables &输入这行命令后,命令行可能会看起来卡住了,这是正常的,说明MySQL已经在“无密码模式”下运行了。
- Windows系统: 还是用管理员身份的CMD,切换到你的MySQL的bin目录下,
-
无密码登录并修改密码: 新开一个命令提示符或终端窗口(原来的那个别关!)。
- 同样进入到MySQL的bin目录(Windows)或直接使用mysql命令(Linux)。
- 输入
mysql -u root -p,当它问你密码时,直接按回车键,因为现在已经跳过验证了,你就能直接以root身份进去。 进去后,你会看到提示符变成了mysql>,现在就可以修改密码了,但这里有个小坑,不同版本的MySQL修改密码的命令不太一样,这也是很多CSDN教程里会重点强调的。 - 对于MySQL 5.7及更早版本:
UPDATE mysql.user SET authentication_string=PASSWORD('你的新密码') WHERE User='root'; - 对于MySQL 8.0及更新版本: 密码管理方式变了,需要用下面这个:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';输完命令后,一定要执行
FLUSH PRIVILEGES;来刷新权限,让新密码生效。
-
重启MySQL服务: 密码改好了,就得把“后门”关掉,回到第一个命令行窗口,按
Ctrl+C停止MySQL,然后像第一步那样,正常地启动MySQL服务(net start mysql或sudo systemctl start mysql),你就可以用刚设的新密码登录了。
第二招:如果第一招不灵,或者你连mysql命令都找不到——修改初始化文件
这个方法在知乎的一些回答里被作为备选方案提到,原理是MySQL启动时会读取一个叫my.cnf(Linux)或my.ini(Windows)的配置文件,我们可以在这里面做手脚。
- 找到这个配置文件,Windows通常在MySQL的安装目录下,Linux在
/etc/mysql/或/etc/下。 - 在
[mysqld]这个段落下面,加一行:skip-grant-tables - 保存文件,然后正常重启MySQL服务,这样效果和第一招里的“后门”启动是一样的。
- 接着重复第一招里的第3步,无密码登录并修改密码。
- 非常重要的一步: 密码修改成功后,一定要回到这个配置文件,把刚才加的
skip-grant-tables这一行删掉或者用 注释掉(写成#skip-grant-tables),然后再重启一次MySQL服务,否则你的数据库就一直处于无密码状态,太危险了!
第三招:实在没办法的“重装大法”(不推荐,但得知道)
有些论坛网友会说,如果上面两招都失败了,或者你的数据库是全新安装的、里面没什么重要数据,那最彻底的办法就是卸载重装,但这绝对是下下策,因为你会丢失所有数据,除非你确定数据库是空的,或者你有最近的备份,否则千万别轻易尝试。
最后的小贴士(来自大家的经验)
- 记不住命令? 没关系,这些命令确实有点长,你可以先把这篇文章收藏起来,用到的时候照着敲就行。
- 注意版本差异: 就像前面说的,改密码的命令在MySQL 5.7和8.0之间不一样,这是最容易出错的地方,如果你不确定自己的版本,可以试试8.0的命令,如果报错再换5.7的。
- 改完密码还是登录不上? 检查一下是不是有空格输错了,或者用户主机名不对(比如是
root@%而不是root@localhost),可以在mysql命令符下用SELECT user, host FROM mysql.user;查看一下准确的root用户信息。 - 养成好习惯: 密码找回后,赶紧找个安全的地方把新密码记下来,或者考虑使用密码管理器。
希望这几招能帮你顺利解决问题!操作前如果特别担心,可以先给整个虚拟机或服务器做个快照,这样就算操作失误也能一键还原。
本文由盘雅霜于2026-01-10发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/78291.html
