Ubuntu 系统中重置 MySQL Root 密码的操作指南

慢慢来
慢慢来
发布时间:2026-10-15| 4人浏览过
原创

在 Ubuntu 服务器环境中,如果忘记了 MySQL 的 root 密码,可以通过跳过权限检查的方式重新启动数据库服务来重置。本文将指导您如何安全地停止服务、进入单用户维护模式、修改密码字段并恢复正常运行。

准备条件与注意事项

执行以下操作需要具有 root 权限的 Linux 账户。由于涉及直接修改数据库内部表和进程管理,请确保在维护窗口进行操作,并确认当前没有重要的在线写入任务,以免数据丢失或连接中断。

重置步骤详解

第1步:停止现有的 MySQL 服务

首先需要关闭正在运行的 MySQL 实例,以便进行后续的配置更改。

sudo service mysql stop

完成状态:命令执行后无报错输出,且再次使用 service mysql status 检查时显示服务已停止(inactive/dead)。

第2步:以跳过权限表方式启动 mysqld

使用 mysqld_safe 或直接调用 mysqld 启动数据库进程,并加上 --skip-grant-tables 参数。这会允许任何人无需密码即可连接到 MySQL,但通常也会禁用网络功能以防安全风险。

sudo mysqld --user=mysql --skip-grant-tables --skip-networking &

重要参数说明:

  • --user=mysql: 指定运行 MySQL 进程的用户,符合最小权限原则。
  • --skip-grant-tables: 跳过权限验证,这是修改 root 密码的关键。
  • --skip-networking: 禁用 TCP/IP 网络连接,仅允许本地 Unix Socket 连接,降低外部未授权访问风险。

完成状态:终端会返回后台进程的 PID(如示例中的 [1] 3591)及 InnoDB 初始化日志,最后一行出现 [Note] mysqld: ready for connections. 表示服务已成功启动并接受连接。

第3步:登录 MySQL 并修改密码

由于此时跳过了权限验证,可以直接使用 mysql -u root 登录,无需提供密码。

mysql -u root mysql

登录后,系统将进入 MySQL 提示符(mysql>)。根据 MySQL 版本的不同,修改密码的命令略有差异。对于较旧的 MySQL 版本(如 5.7 之前),直接更新 password 列:

UPDATE user SET Password=PASSWORD('your_new_password') WHERE User='root';
FLUSH PRIVILEGES;
QUIT;

注意:

  • 'your_new_password' 应替换为您想要设置的新密码。
  • UPDATE ... SET Password=... 是旧版语法。在现代 MySQL (5.7+) 中,认证插件可能不同,更通用的方法是使用 ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';,若上述 UPDATE 语句不生效,可尝试此命令。
  • FLUSH PRIVILEGES; 是必须的,它会重新加载授权表,使密码修改立即生效,而无需重启服务。

完成状态:执行 UPDATE 后返回 Query OK, X rows affected,执行 FLUSH PRIVILEGES 无错误输出。

第4步:终止强制启动的进程并正常重启服务

首先 kill 掉第二步中手动启动的后台进程。如果您记得 PID(例如 3591),可以使用:

kill 3591

或者直接使用服务管理工具停止它:

sudo service mysql stop

然后正常启动 MySQL 服务:

sudo service mysql start

完成状态:服务状态显示为 active/running。

第5步:验证新密码

使用新设置的密码尝试登录 MySQL,确认重置成功:

mysql -u root -p

输入新密码后若能成功进入 MySQL 控制台,则表明整个流程顺利完成。

排错与安全建议

如果在修改密码后无法登录,请检查是否遗漏了 FLUSH PRIVILEGES; 步骤,或者检查 /var/log/mysql/error.log 查看是否有权限相关错误。

风险提示:在启用 --skip-grant-tables 期间,数据库处于完全开放状态。务必在完成密码修改并重新开启权限验证后,尽快恢复正常服务模式,避免长时间暴露在安全风险中。

简要总结

通过以上步骤,您可以绕过 MySQL 的认证机制,直接在操作系统层面重置 root 密码。核心逻辑在于利用跳过权限表的启动参数获取临时访问权,修改数据字典中的用户凭证,最后刷新权限恢复正常。以上就是在 Ubuntu 中重置 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 算法库。