1、问题描述
今天在用很久没有使用的电脑上使用navicat连接mysql数据库的时候,突然弹出这个问题,觉得可以记录一下,很多新手宝宝可能都遇到过这个问题:
2、原因:
这个报错的意思是说:权限插件 caching_sha2_password
不能被加载
查看MySQL官方文档有这么一段描述:
也就是说:
8.0 以前的默认身份验证插件是 mysql_native_password
8.0 以后的默认身份验证插件是 caching_sha2_password
由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式:caching_sha2_password
所以我们需要修改用户的加密方式,将其改为老的加密验证方式:mysql_native_password
ps:目前大多数的 MySQL 客户端都还没有升级为 8.0 的认证方式,故像 Navicat、SQLyog、Sequel Pro、 等这些常用的连接工具,都有可能出现这个问题喔
3、解决方法
在mysql的bin目录下,打开cmd,注意使用的是管理员身份进入的,然后分别执行以下步骤:
#登录
mysql -uroot -ppassword
#输入数据库密码
******
#选择数据库
use mysql;
#注意:如果是远程连接,请将'localhost'换成'%'
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的数据库密码';
#刷新权限
FLUSH PRIVILEGES;
再打开navicat,大功告成!