Linux系统重置MySQL root密码的通用方法

Owen
Owen
发布时间:2026-10-13| 5人浏览过
原创

当Linux服务器上的MySQL数据库忘记root密码时,直接重装并非明智之举。本文提供了一套通用的故障排除方案:通过--skip-grant-tables参数跳过权限验证启动MySQL,从而进入数据库更新密码字段,最后恢复正常运行服务。

环境检查与故障确认

在开始重置之前,首先需要确认当前环境中确实安装了MySQL服务,并验证root用户已处于“被锁定”状态。

第1步:确认MySQL安装情况

目的:确保系统中存在MySQL相关组件,以便后续操作有针对性。

  • 操作入口:Linux终端(Terminal)。
  • 具体动作:执行包管理器查询命令,筛选包含mysql的包名。
# Debian/Ubuntu 系统示例
dpkg --list | grep mysql

# CentOS/RHEL 系统示例
rpm -qa | grep mysql

第2步:验证密码遗忘

目的:复现问题场景,确认当前确实无法使用已知密码登录。

  • 操作入口:终端命令行。
  • 具体动作:尝试以root身份连接MySQL客户端。
mysql -uroot -p

跳过权限验证修改密码

这是核心操作步骤。通过禁用权限表加载,可以在不知道旧密码的情况下进入数据库内部进行修改。此操作需要具有Linux root权限或sudo权限。

第3步:停止现有MySQL服务

目的:释放端口和进程占用,防止新启动的服务与正在运行的服务冲突。

  • 操作入口:终端命令行。
  • 具体动作:查找并终止所有mysqld相关进程,或使用系统服务管理命令停止服务。
# 方式一:强制杀死进程
killall mysqld

# 方式二:使用service命令(视系统版本而定)
sudo service mysql stop
# 或者
sudo systemctl stop mysql

第4步:以安全模式启动MySQL

目的:启动一个不加载权限表的MySQL实例,允许无密码登录。

  • 操作入口:终端命令行。
  • 重要参数:--skip-grant-tables 跳过权限检查;& 表示后台运行。
  • 路径说明:以下命令假设MySQL安装在默认路径,实际路径可能因安装方式不同而异(如 /usr/bin/mysqld_safe)。
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
# 如果找不到该路径,尝试标准路径
mysqld_safe --skip-grant-tables &

第5步:登录数据库并重置密码

目的:利用刚启动的免密实例,直接修改root用户的认证信息。

  • 操作入口:MySQL客户端交互界面。
  • 具体动作:直接输入mysql回车进入,无需提供密码。
mysql -u root -p
# 提示输入密码时,直接按回车键即可

进入MySQL命令行后,依次执行以下SQL语句:

  1. 切换数据库:
use mysql;
  1. 更新密码字段:

注意:MySQL 5.7及以前版本使用password函数;MySQL 8.0及以上版本推荐使用ALTER USER语句,如下所示:

-- MySQL 5.7及以下
update user set password=password('新密码') where user='root';
flush privileges;

-- MySQL 8.0及以上(推荐)
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
flush privileges;
  1. 刷新权限:确保内存中的权限表立即生效。
flush privileges;
exit;

恢复正常服务

密码修改完成后,必须关闭刚才的特殊模式启动的MySQL实例,并以正常方式重启服务,重新启用权限验证。

第6步:重启MySQL服务

目的:让MySQL回到正常的权限验证和安全运行状态。

  • 操作入口:终端命令行。
  • 具体动作:先杀掉所有mysql进程,再重新启动服务。
# 杀掉所有残留的mysql进程
killall mysqld

# 正常启动服务
sudo service mysql start
# 或者
sudo systemctl start mysql

此时,你可以再次使用新设置的密码尝试登录,确认密码重置成功。

mysql -uroot -p
# 输入刚才设置的新密码

以上就是在Linux系统中重置MySQL root密码的详细操作流程。通过跳过权限表验证的方法,可以高效解决忘记密码带来的困扰。更多关于数据库运维的知识,请关注本站其他相关文章!

相关标签:

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

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 算法库。