忘记MySQL root密码该怎么办?

凌晨两点半
凌晨两点半
发布时间:2026-10-13| 6人浏览过
原创

在日常开发或服务器维护中,因时间久远或人为疏忽导致忘记MySQL的root密码是较为常见的故障之一。本文将详细介绍一种通用的绕过验证机制来重置密码的方法。需要注意的是,该方法会短暂关闭数据库的安全权限校验,操作完成后务必重新启动正常服务。

结果或目标

在无法通过常规方式(mysql -u root -p)登录数据库时,能够通过本地物理访问数据库服务器,强制重置管理员账户密码并恢复正常的读写功能。

准备条件

1. 具有操作系统的本地最高权限(Windows的管理员权限或Linux的root权限)。 2. 拥有对MySQL安装目录及数据目录的文件读写权限。 3. 确认当前处于可以安全停止MySQL服务的时段(此操作会导致正在连接的客户端中断)。

真实操作顺序

第1步:查找并终止当前运行的MySQL进程

目的:确保后续能独占端口和文件句柄成功启动新的服务实例。

Windows环境操作: 如果使用的是图形界面安装的MySQL服务,建议先通过“服务”管理器将其停止。若服务已挂死或处于异常状态,可手动查找并结束进程。

打开命令行工具,输入以下命令查看MySQL相关的进程ID:

tasklist | findstr mysql

找到对应的进程后,使用任务管理器的详细信息页或命令行将其结束。命令格式如下:taskkill /F /PID 进程号。若不确定具体用法,可输入 taskkill /? 查看帮助信息。

Linux环境操作: 可使用 ps -ef | grep mysql 获取进程号,然后执行 kill [进程号] 进行终止。

第2步:以跳过权限表的方式重启MySQL服务

目的:配置MySQL在启动时不加载权限验证表(user表),从而允许任意用户无需密码直接连接并进行特权操作。

操作入口:命令行终端或MySQL启动脚本。

动作说明:切换到MySQL的根安装目录下的 bin 文件夹中。使用带参数的守护进程模式启动服务。

关键参数:--skip-grant-tables

Windows下示例:

mysqld --skip-grant-tables

Linux下通常可以使用脚本启动:

./bin/mysqld_safe --skip-grant-tables &

完成判断:此时命令行不会像常规服务那样直接返回提示符(取决于OS),而是在后台保持监听状态。或者打开一个新的命令行窗口尝试连接,观察是否可以免密进入。

第3步:连接数据库并更新管理员密码

目的:利用免密连接的空闲会话,直接篡改底层数据库的用户表以设置新密码。

动作说明:在新的命令行窗口中输入 mysql 即可直接进入控制台,此时不需要任何用户名和密码(或输入任意账号均可)。

进入交互界面后,依次执行以下SQL语句:

首先,切换到内置的系统库:

use mysql;

注意:此时直接使用标准的 `SET PASSWORD` 命令可能会报错或被忽略,因为授权表被禁用了。需要采用更底层的 `UPDATE` 方式直接修改 user 表中的密码字段值。

假设我们要将密码更新为 your_new_password,请在数据库中执行以下SQL:

-- MySQL 8.0 及以上版本 UPDATE user SET authentication_string=PASSWORD('your_new_password') WHERE User='root'; FLUSH PRIVILEGES; -- MySQL 5.7 及以下版本 UPDATE user SET password=PASSWORD('your_new_password') WHERE User='root'; FLUSH PRIVILEGES;

修改成功后,必须强制刷新权限缓存(FLUSH PRIVILEGES;),虽然此时并未开启权限检查,但为了让内部变量正确响应下一步的重启操作是必要的步骤。

第4步:完全退出并恢复正常服务

目的:保存刚才的更改,并重新拉起开启了权限验证的MySQL进程。

动作说明:首先在刚刚的免密命令行窗口中输入 exit 退回到操作系统命令行。接着,必须将之前用 --skip-grant-tables 启动的那个MySQL进程完全杀掉(再次执行 taskkill 或 kill)。然后,像往常一样使用系统启动命令、服务管理器或默认的配置文件启动MySQL。

完成判断:新启动的MySQL服务应当能够正常工作且不再报错。

第5步:测试新密码登录

目的:验证密码重置是否生效。

动作说明:在当前窗口或新开窗口中,再次使用标准指令登录:

mysql -u root -p

系统提示输入密码时,键入刚才设定的 your_new_password。

若能顺利进入数据库控制台,则说明整个恢复流程已完成。

简要总结

以上就是解决root密码忘记的详细内容,更多关于MySQL入门技巧的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。