关于Mysql8版本忘记root密码的解决办法

预备

Server version: 8.0.28
关闭MySQL服务
设置好MySQL的环境变量

mysql以跳过密码验证的方式启动

以管理员身份打开PowerShell,使用命令mysqld --console --skip-grant-tables --shared-memory这是将MySQL设置为“跳过密码验证”的方式开启服务。

将root密码置空

不要关闭先前打开的PowerShell,以管理员身份打开新的PowerShell,使用命令mysql -uroot -p登录mysql,由于现在的mysql是以跳过密码验证的方式启动的,所以提示输入密码时直接回车是可以进入mysql的。
接下来,依次输入命令:

  1. use mysql;
  2. update user set authentication_string=’’ where user=’root’; // 置空root用户的校验字符串(也就是将root密码置空。)
    若不放心这部操作是否成功,可以接着使用下面的第3步。
  3. select user, authentication_string from mysql.user; //这步不是必须的,只是为了验证查看root用户的校验字符串是否被置空。

验证成功的效果如下:(root后的authentication_string字段为空即可)
将root密码置空的效果

  1. flush privileges;//用于刷新权限,以保证刚刚的操作生效。
设置root密码(再此之前root密码已经被置空,若不想设置root密码可以跳过)

关闭之前操作所打开两个的PowerShell,以管理员的身份打开新的PowerShell,依次输入命令:

  1. net start mysql //启动mysql,注意mysql指的是mysql的服务名
  2. msyql -uroot -p//登录mysql,由于之前的操作已经将root密码置空,所以提示输入密码的时候直接回车就可以登录
  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 mysql //关闭MySQL服务

第5步成功的效果图:(只要看到root后的authentication_string字段有值的就好)
第5步成功的效果图
至此,MySQL8版本的root密码已经设置好。

另外:mysql8.0以及以上版本中,一下两种设置密码的方式:
update mysql.user set password=‘newpassword’ where user=‘root’;
update mysql.user set password=PASSWORD(‘newpassword’) where User=‘root’;
已经不再被支持使用了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值