MYSQL8.0以上版本远程连接ROOT密码报错及修改

本文介绍了解决MySQL 8.0及以上版本中忘记root密码的方法,包括通过命令行更新密码及解决Navicat远程连接失败的问题。

在登录数据库过程中,如果遇到忘记root密码时,该如何解决?

一、root密码无法登录

  1. 使用管理员权限打开命令提示符,在命令行中输入: net stop mysql ,停止mysql服务。

  2. 待mysql服务停止后,输入: mysqld --shared-memory --skip-grant-tables ,此时命令提示符窗口处于锁定状态,重新以管理员权限打开新的命令提示符窗口。

  3. 在新的命令提示符窗口输入: mysql -uroot -p 后回车,提示输入密码时直接按回车进入。

  4. 输入: use mysql;

  5. 输入: update user set authentication_string='' where user='root'; ,将authentication_string置空。

注:在mysql8.0以上版本

 update mysql.user set password='newpassword' where user='root';

update mysql.user set password=PASSWORD('newpassword') where User='root'; 

这两条命令已经不起作用了。

  1. 输入: alter user 'root'@'localhost' identified by 'newpassword'; newpassword是要设的新密码。

  2. 如果提示设置成功,则输入: flush privileges; 。完成后Ctrl+Z退出mysql,使用新密码重新登录即可。

  3. 如果提示不成功,则关闭两个命令提示符,重新打开一个管理员权限的命令提示符窗口,输入: mysql -uroot -p 后回车,输入密码时直接按回车进入(因为此时密码已被置空)。

  4. 重复步骤4,步骤6,步骤7。

二、Navicat远程连接数据库失败

  1. 如果使用Navicat等可视化界面连接数据库时连接不成功的情况,如错误信息:2059。
    此时需要更改验证方式,使用命令提示符登录数据库,输入:
SELECT Host, User, plugin from user;

查看验证类型 ,可以看到root用户的验证类型是caching_sha2_password:
在这里插入图片描述

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
#yourpassword 是想要设置的密码。
  1. 提示成功后, flush privileges; ,再次打开Navicat连接即可。

以上为mysql 8.0版本以上,忘记root密码或使用root密码登录不成功的解决办法!

原文链接:https://www.cnblogs.com/mzxiaoze/p/10413399.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值