MySQL8忘记密码以及修改密码的处理
作者:谎言诞行    发布时间:2023年12月19日

0、前言

在日常生活中,记住每个软件或者平台的密码总是一件难事。因此,找回密码或者重置密码的手段,还是有必要保留的。所以,我们展开讨论下关于 MySQL 8.x 这个数据库软件的重置密码手段。

在开始前,有人可能会说,数据库密码忘记了,用管理员账号重置即可。但是,有一种情况是比较特殊的,也是比较尴尬的,比如:root 管理员用户密码忘记了。下面,我们开始介绍如何重置 root 管理用户的密码。


1、在数据库配置文件(Linux下为 my.cnf ,windows下为 my.ini)添加配置参数,使 MySQL 不校验权限信息。然后重启数据库服务

skip-grant-tables

image.png

然后在命令行终端输入 mysql 命令。然后数据库客户端会直接跳入 控制台。

> mysql


2、查看当前认证方式以及用户,默认是 caching_sha2_password 认证

use mysql; -- 切换数据库

select host, user, authentication_string, plugin from user;

image.png


3、现在我们看到 root 用户的 host 是 % (这个看自己的数据库,不同人设置会有差异),authentication_string 密码信息是已加密的。


4、清空 root 用户的密码信息(不能直接修改密码,会报错。要先清空root密码)。

update user set authentication_string='' where user='root'; -- 清空密码

flush privileges;  -- 刷新权限信息


5、输入 exit 退出 mysql 控制台删除/etc/my.cnf文件里的 skip-grant-tables ,再一次重启 mysql 服务,再次登陆的时候是空密码登陆

mysql -u root -p      (这里输入命令后,回车。空密码登录即可进入控制台)


6、登陆后即可修改密码了:

ALTER USER 'root'@'%' IDENTIFIED BY '123456';  -- 这里的root密码修改为 123456,
                                               -- 用户域信息 % ,需要根据你实际的信息填写。

flush privileges;  -- 刷新权限信息


7、现在 root 用户可以用新密码登录了。

填写一种颜色的字符(不区分大小写),1分钟有效,点击图片刷新