【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';

5. 移除跳过权限验证的参数,重启服务

完成密码清空后,需恢复 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 账户的密码,恢复数据库的正常登录。

Tags:

发表回复

Your email address will not be published. Required fields are marked *.

*
*