MySQL8.0 root密码忘了怎么办?(Windows)

2022-03-31 21:32:09 浏览数 (1)

root用户密码忘了怎么办啊喂!

前言

 依旧是在了解MySQL的DCL时,跟着视频学习时,老师讲了在忘记root密码的情况下的解决方法,依旧是在照葫芦画瓢后却报错了,不需要思考了,肯定又又叒是版本的问题(我使用的是8.0,视频教学中使用的是5.7),按照惯例我在搜寻、探索一番后得到了解决的方案,在此记录一下,由于我在同时使用Windows和Mac Os,所以两个系统的解决方法我都进行了学习,本篇为Windows的解决方法,需要Mac Os解决方法的小伙伴请跳转我的另一篇博客MySQL8.0 root密码忘了怎么办?(Mac Os)

在教学中,老师对于MySQL 5.7以前的做法是(我使用的是MySQL8.0)

代码语言:javascript复制
#第一步 管理员权限打开命令窗口 --> net stop mysql        停止mysql服务(指令中的'mysql'取决你的服务名)
#第二步 使用无验证方式启动 mysql 服务:mysqld --skip-grant-tables
#第三步 打开新的命令窗口,直接输入'mysql'命令,回车。就可以登录成功
#第四步 USE mysql;
#第五步 UPDATE user SET password = PASSWORD('新密码') WHERE user = 'root';
#第六步 关闭两个窗口
#第七步 打开任务管理器,手动结束 mysqld.exe 的进程
#第八步 启动 mysql 服务
#第九步 使用新密码登录

 看过我上一篇文章的应该知道,PASSWORD()函数已经在新版本8.0以后废弃了,所以这种解决方法是肯定不适用的,因此又产生了这篇文章,下面我们来看看在Windows下MySQL 8忘记密码,如何登录及修改密码吧(这里以Win10为例)

第一步

以管理员身份运行控制台,关闭MySQL服务 使用命令:net stop mysql 需要注意的是:stop后的mysql是服务名称,取决于你安装数据库时起的名字,例如我是 MYSQL80 那我要使用的命令就是 net stop MYSQL80

第二步

启动跳过授权表,免密登录的服务 使用命令:mysqld --console --skip-grant-tables --shared-memory

第三步

用管理员身份重新打开一个控制台窗口,然后免密码登录Mysql 使用命令:mysql.exe -u root

第四步

使用MySQL的mysql数据库 使用命令:USE mysql

第五步

先修改root的密码为空。特别注意authentication_string=''的等号后是一对单引号 使用命令:UPDATE mysql.user SET authentication_string='' WHERE user = 'root';

第六步

在上一步的基础上查询root的用户分组和密码 使用命令:SELECT host,user,authentication_string FROM mysql.user; 可以看到,在修改以后,root用户的密码已经为空

第七步

关闭之前保留的那个控制台窗口和现在使用的这个控制台窗口,一共关闭两个控制台窗口 然后以管理员身份再新打开一个控制台窗口,启动MySQL的服务 使用命令:net start mysql 需要注意的是:stop后的mysql是服务名称,取决于你安装数据库时起的名字,例如我是 MYSQL80 那我要使用的命令就是 net start MYSQL80

第八步

重新登录MySQL,要输入密码的时候,什么都不用输入直接回车即可 使用命令:mysql -u root -p

第九步

最后一步,修改root密码 使用命令:ALTER user 'root'@'localhost' IDENTIFIED BY '12345678';

测试

改完密码直接关闭控制台窗口,然后新开一个控制台窗口 使用命令:mysql -u root -p 回车后输入密码,登录成功就说明你成功了,撒花~

本篇文章采用 署名 4.0 国际 (CC BY 4.0) 许可协议进行许可。

0 人点赞