MySQL忘记密码重置方法:Linux环境下跳过权限认证流程

小林子
小林子
发布时间:2026-10-16| 5人浏览过
原创

在使用MySQL的过程中,由于长时间未维护或交接疏漏导致root密码遗忘是常见问题。对于Linux环境(如CentOS),可以通过配置skip-grant-tables参数跳过权限验证表,从而免密登录数据库。本文将演示如何通过此方式安全地修改密码、刷新权限并恢复正常的安全验证机制。

重置原理与准备条件

MySQL默认使用mysql.user表存储用户信息并进行权限校验。当忘记密码时,无法通过正常路径修改。解决方法是启动MySQL服务时加载skip-grant-tables参数,使服务端忽略权限检查,允许任何人无密码登录。[mysqld]段添加该参数后,需重启服务生效,随后直接以-uroot连接数据库进行修改操作。

第1步:停止当前MySQL服务

为防止正在进行的查询冲突及确保配置生效,首先需要关闭正在运行的MySQL实例。

systemctl stop mysql

等待命令返回提示符,确认服务已停止。

第2步:修改MySQL配置文件开启免密

找到MySQL主配置文件/etc/my.cnf(不同发行版可能位于/etc/mysql/my.cnf等位置)。在文件中找到[mysqld]区块,并在其下方单独添加一行:skip-grant-tables。

保存文件后退出编辑器(例如在vim中按Esc输入:wq)。

第3步:重启MySQL服务应用配置

systemctl start mysql

此时服务已在免密模式下启动。

重置密码核心步骤

第4步:直接连接MySQL服务

由于跳过了权限表,可直接输入用户名连接,无需输入密码。

mysql -uroot

若能成功进入mysql>提示符,说明配置正确。

第5步:更新root用户密码

在数据库内依次执行以下SQL指令:

use mysql;
update mysql.user set authentication_string=password('这里输入你的新密码') where user='root';
flush privileges;
exit;

注意以下几点以确保成功:

  • 选择数据库:use mysql;进入权限库。
  • 修改字段:新版本MySQL使用authentication_string字段记录密码哈希。
  • 强制刷新:flush privileges;是必不可少的一步,否则内存中的权限表不会更新,可能导致重连后旧密码依然生效。

恢复配置与验证

第6步:还原配置文件并重启服务

回到终端,再次编辑/etc/my.cnf,删除刚才添加的skip-grant-tables行,保存退出。然后重启MySQL服务。

vim /etc/my.cnf
# 删除 skip-grant-tables 行并保存
systemctl restart mysql

此时MySQL已恢复正常的安全验证机制。

第7步:测试新密码登录

尝试使用指定新密码的用户名登录,如果成功则代表修改完成。

mysql -uroot -p

输入第5步设置的密码后,若能进入客户端即表示成功。

注意事项

在配置skip-grant-tables期间,建议限制服务器公网访问,因为任何本地用户都能以root身份直接进入数据库而无需密码。完成操作恢复配置后,数据库的安全性自动回归初始状态。

以上就是Mysql忘记密码解决方法的详细内容,更多关于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 算法库。