navicat-mysql重置密码

navicat-mysql重置密码

1.Mysql8.0以下

  1. 搜索命令提示符,以管理员身份进入。

  2. 输入sc query mysql找到Mysql服务名称,然后输入net sotp mysql80(这个是sc query mysql展示的服务名称)用来关闭mysql服务。

  3. 1722176452574

    在cmd里面跳转到bin文件的路径下,如图所示:

    1722176615197

4.跳过权限认证:

mysqld --shared-memory --skip-grant-tables

1722176814680

5.重新打开一个命令行,然后重新跳转到bin文件夹的路径下,然后直接输入mysql不需要密码,结果如下:1722176941823

6.切换到数据库mysql数据库。

use mysql

7.将密码清空

UPDATE mysql.user SET authentication_string='' WHERE User='root';

8.更新权限。

flush privileges

9.修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'xjs13149420';
备注:这里的xjs13149420是你想设置的密码

10.试验:

mysql -u root -pxjs13149420#登录

1722177220429

2.navicat for mysql 出现如下问题

1.问题描述

使用Navicat客户端连接本地mysql,报错:1251- Client does not support authentication protocol requested by server;consider upgrading Mysql client。

img

img

2.查看用户信息

打开命令行小黑屏,进入MySQL的bin目录,然后输入mysql -u root -p,输入密码,登录成功 。

  1. 执行SQL查询用户信息

    select host,user,plugin,authentication_string from mysql.user;
    

得出结果如下:

img

备注:host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码

3.问题原因

上网搜索解决方案,网上说出现这种情况的原因是:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,

解决问题方法有两种:

方法1.升级navicat驱动;

方法2.把mysql用户登录密码加密规则还原成mysql_native_password.

这里采用方法2解决,具体操作步骤如下。

4.解决问题

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
更新user为root,host为localhost 的密码为123456

或者

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 (这行我没有写,不过貌似也可以)
 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码 
 
FLUSH PRIVILEGES; #刷新权限

再次执行查询,结果如下:

img

再次在navicat for mysql里面执行,连接成功。

img

posted @   奋斗的独角兽  阅读(93)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示