MySQL root密码忘了的超详细重置步骤教程

 更新时间:2025年11月01日 08:34:17   作者:·云扬·  
在使用MySQL数据库的的过程中,不可避免的会出现忘记密码的现象,这篇文章主要介绍了MySQL root密码忘了超详细重置步骤的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

问题描述

在使用 MySQL 数据库时,若不慎忘记 root 账户的登录密码,会导致无法正常登录数据库,影响后续操作。本文将详细介绍如何通过修改配置、重置密码等步骤,解决 MySQL root 密码遗忘的问题。

问题解决

  1. 修改配置文件,添加跳过权限验证的参数

首先需要修改 MySQL 的配置文件,临时跳过权限验证,以便无密码登录数据库。

  • 使用 vim 编辑器打开 MySQL 配置文件:
vim /data/mysql/conf/my.cnf 
  • 在配置文件的[mysqld]模块下添加以下参数(用于跳过权限验证):
skip-grant-tables

  1. 重启 MySQL 服务,使配置生效

添加参数后,需重启 MySQL 服务,让新配置生效:

/etc/init.d/mysql.server restart
  1. 以免密码方式登录 MySQL

配置生效后,可直接无密码登录 root 账户:

mysql -uroot -p

执行上述命令后,系统会提示输入密码,此时直接按回车(无需输入密码)即可登录。

  1. 清空 root 账户原密码(解决直接改密报错问题)

登录后若直接使用ALTER USER命令修改密码,会因权限验证被跳过而报错。因此需先通过修改用户表,将 root 密码设为空:

update mysql.user set authentication_string = '' where user = 'root' and host='localhost';
  1. 移除跳过权限验证的参数,重启服务

完成密码清空后,需恢复 MySQL 的权限验证机制:

  • 重新打开配置文件,删除之前添加的skip-grant-tables参数:
vim /data/mysql/conf/my.cnf 

(在 vim 编辑模式下,定位到该参数行,按dd删除)

  • 再次重启 MySQL 服务,使配置恢复:
/etc/init.d/mysql.server restart
  1. 使用空密码登录,重新设置 root 密码

此时 MySQL 已恢复权限验证,可使用空密码登录 root 账户:

mysql -uroot -p

(输入密码时直接按回车,因步骤 4 已将密码设为空)

登录后,通过ALTER USER命令设置新密码(以dup81Gcda2为例):

alter user user() identified by 'dup81Gcda2';
  1. 验证新密码是否生效

使用新密码重新登录 MySQL,确认密码修改成功:

mysql -uroot -p

输入刚设置的新密码dup81Gcda2,若能正常登录,则说明问题已解决。

通过以上步骤,即可成功重置 MySQL root 账户的密码,恢复数据库的正常登录。

总结

到此这篇关于MySQL root密码忘了重置步骤的文章就介绍到这了,更多相关MySQL root密码忘了内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • centos7通过yum安装mysql的方法

    centos7通过yum安装mysql的方法

    这篇文章主要介绍了centos7通过yum安装mysql的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • MySQL实现自然连接查询的示例

    MySQL实现自然连接查询的示例

    MySQL自然连接是一种基于共同列名自动执行的查询方式,无需显式指定连接条件,自然连接的结果可能会受到列名和表结构的影响,因此在使用自然连接时需谨慎,本文就来介绍一下如何使用,感兴趣的可以了解一下
    2024-09-09
  • MySQL Router高可用搭建问题处理小结

    MySQL Router高可用搭建问题处理小结

    MySQL MGR在数据库层面实现自主高可用性,而MySQL Router则负责代理访问,这篇文章主要介绍了MySQL Router高可用搭建问题小结,需要的朋友可以参考下
    2023-06-06
  • 小记一次mysql主从配置解决方案

    小记一次mysql主从配置解决方案

    mysql主从方案主要作用:读写分离,使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。
    2015-10-10
  • MyBatis与MySQL语法区别解析

    MyBatis与MySQL语法区别解析

    MyBatis是Java持久化框架,专注对象与SQL映射;MySQL是数据库管理系统,负责数据存储与SQL执行,两者协作完成数据操作,MyBatis简化代码,MySQL处理底层数据逻辑,本文介绍MyBatis与MySQL语法区别解析,感兴趣的朋友一起看看吧
    2025-08-08
  • MySQL内存及虚拟内存优化设置参数

    MySQL内存及虚拟内存优化设置参数

    这篇文章主要介绍了MySQL内存及虚拟内存优化设置参数,需要的朋友可以参考下
    2016-05-05
  • Mysql 增加主键或者修改主键的sql语句操作

    Mysql 增加主键或者修改主键的sql语句操作

    这篇文章主要介绍了Mysql 增加主键或者修改主键的sql语句操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • MySQL覆盖索引与大分页详解

    MySQL覆盖索引与大分页详解

    这篇文章主要介绍了MySQL覆盖索引与大分页,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • 基于C++实现Mysql数据库连接池实例

    基于C++实现Mysql数据库连接池实例

    数据库连接池负责分配、管理、和释放数据库连接,允许使用应用程序重复使用一个现有的数据库连接。数据库连接是关键有限且昂贵的资源,一个数据库连接对象均对应一个物理数据库的连接,每次操作都打开一个物理连接,使用完都关闭连接
    2022-12-12
  • MySQL覆盖索引的使用示例

    MySQL覆盖索引的使用示例

    如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。这篇文章主要给大家介绍了关于MySQL覆盖索引的相关资料,需要的朋友可以参考下
    2021-01-01

最新评论