目录
navicat-mysql重置密码
1.Mysql8.0以下
-
搜索命令提示符,以管理员身份进入。
-
输入sc query mysql找到Mysql服务名称,然后输入net sotp mysql80(这个是sc query mysql展示的服务名称)用来关闭mysql服务。
-
在cmd里面跳转到bin文件的路径下,如图所示:
4.跳过权限认证:
mysqld --shared-memory --skip-grant-tables
5.重新打开一个命令行,然后重新跳转到bin文件夹的路径下,然后直接输入mysql不需要密码,结果如下:
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#登录
2.navicat for mysql 出现如下问题
1.问题描述
使用Navicat客户端连接本地mysql,报错:1251- Client does not support authentication protocol requested by server;consider upgrading Mysql client。
2.查看用户信息
打开命令行小黑屏,进入MySQL的bin目录,然后输入mysql -u root -p,输入密码,登录成功 。
-
执行SQL查询用户信息
select host,user,plugin,authentication_string from mysql.user;
得出结果如下:
备注: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; #刷新权限
再次执行查询,结果如下:
再次在navicat for mysql里面执行,连接成功。
标签:重置,navicat,密码,mysql,password,root,localhost From: https://www.cnblogs.com/positive-boy/p/18342100