MySQL8 忘记root密码 重置root密码

叙:好久不用本地的MySQL库了,今天自己学点东西,结果发现密码忘了,自己安装的是MySQL8的数据库,在重置root密码时发现MySQL8的数据库重置密码的操作和之前的版本并不相同,特此记录一下!



1、第一步:置空root原密码

1.1、“越狱”跳过root密码进行登录

  • 思路: 使用管理员权限模式打开CMD面板,输入:mysqld --console --skip-grant-tables --shared-memory(在此之前确定MySQL的所有服务都是关闭的,可以先使用 net stop mysql80 来进行关闭MySQL的服务,“MySQL80”是指自己电脑上MySQL的服务名,不要写错了,我的是MySQL80,各位童鞋请根据自己的进行改变)。
  • 命令:mysqld --console --skip-grant-tables --shared-memory
  • 操作样式如下所示:

1.2、置空root密码操作

1.2.1、进入MySQL操作空间

  • 思路: 再次以管理员身份打开一个CMD面板,上一个面板不要关闭也不要进行任何操作,在新打开的CMD面板中输入:mysql -uroot -p回车,提示让你输入密码,之前的步骤已经帮我们越过了密码校验功能,我们不用输入任何东西,直接再次回车,即可进入MySQL中,如下图:
  • 命令: mysql -uroot -p
  • 操作样式如下图所示:

    进入MySQL命令操作模式;

1.2.2、去除root用户的密码

  • 思路: 输入三条命令来去除root用户的密码;

  • 命令:

    1. use mysql; // 进入操作MySQL数据库的模式;
    2. update user set authentication_string=’’ where user=’root’; // 更新置空root用户的校验字符串(可以理解为就是登陆密码)
    3. select user, authentication_string from mysql.user; // 查看root用户的校验字符串是否被置空;
  • 操作样式如下所示:

    可以清晰地看到root用户的authentication_string字段被置空成功了;

1.2.3、将之前的操作刷新保存

  • 命令: flush privileges
    在这里插入图片描述

2、第二步:配置root用户密码并测试

2.1、配置root用户密码

  • 思路: 关闭之前的两个CMD命令行面板,然后重新在启动一个以管理员身份运行的CMD命令行面板,然后开始给root设置密码(其实现在的root用户的密码已经被清空,如果对于root密码不在意的即使不设置亦可以;),在CMD中输入以下
  • 命令:
    1. net start MySQL80 //启动mysql
    2. msyql -uroot -p // 使用root用户进行登陆MySQL,出现的密码输入提示不用管,直接回车即可
    3. use mysql; //
    4. alter user 'root'@'localhost' identified by '你的新密码';// 给root用户的密码插入值
    5. select user, authentication_string from mysql.user; // 查看root用户的校验字符串插入是否操作成功
    6. flush privileges; // 刷新之前的操作
    7. exit // 退出MySQL操作空间
    8. net stop mysql80 //关闭MySQL服务
  • 操作如下图所示(上边的命令也许并未在图中完全显示,按照命令走就OK了):


2.2、更改结果测试

  • 思路: 关闭已有的CMD命令行面板,重新开启一个管理员身份操作的CMD命令行面板,然后开始登陆,代码如下:

  • 命令:

    1. net start mysql80 // 打开MySQL服务
    2. mysql -uroot -p// 登陆MySQL,然后输入之前设定的root用户的密码,回车即可;
  • 操作样式如下:
    在这里插入图片描述
    登陆成功~

  • Navicat连接数据库测试,如下图:
    在这里插入图片描述
    测试成功~


pass1:本来想在置空了root用户密码后直接再给root用户进行设置密码的,但是发现因为“越狱”的跳过密码的命令导致无法立即赋值,因此才需要关闭了操作之后再进行设定root密码~

pass2:在mysql8.0以及以上版本中update mysql.user set password='newpassword' where user='root';update mysql.user set password=PASSWORD('newpassword') where User='root'; 等一些命令已经不允许被使用了;


《END》

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风暖云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值