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) 许可协议进行许可。