2059 - Authentication plugin ‘caching sha2 password‘ cannot be loaded: @Xeeeeeeege

文章讲述了在使用Navicat连接MySQL数据库时遇到因caching_sha2_password插件无法加载导致的权限问题。原因是MySQL8.0之后默认的身份验证插件变更。解决方案是在MySQL的bin目录下,以管理员身份修改用户加密方式为mysql_native_password,并刷新权限,从而解决连接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,大功告成!

 

### 解决方案 当遇到 `2059 - Authentication plugin 'caching_sha2_password' cannot be loaded` 错误时,通常是因为客户端版本较旧或者未实现对 `caching_sha2_password` 验证插件的支持。以下是详细的解决方法: #### 修改用户的认证方式 可以通过更改 MySQL 用户的认证插件为更广泛的兼容模式 `mysql_native_password` 来解决问题。 1. 登录到 MySQL 数据库服务器并执行以下 SQL 命令: ```sql ALTER USER 'your_username'@'your_host' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; ``` 上述命令的作用是将指定用户的身份验证插件从 `caching_sha2_password` 更改为 `mysql_native_password` 并重新设置密码[^2]。 2. 如果需要批量处理多个用户,则可以运行如下脚本: ```sql SELECT CONCAT('ALTER USER ''', user, '''@''', host, ''' IDENTIFIED WITH mysql_native_password BY ''newpassword'';') AS alter_user_sql FROM mysql.user WHERE plugin='caching_sha2_password'; ``` 将查询结果复制粘贴至终端逐一执行即可完成转换操作[^3]。 #### 升级 Navicat 或其他客户端工具 如果不想改变现有的安全配置(即继续使用 `caching_sha2_password`),则应考虑升级您的 Navicat 版本或其他相关联的应用程序以支持最新的协议标准[^4]。 另外需要注意的是,在某些情况下也可能由于操作系统环境变量缺失而导致动态链接库未能成功加载的情况发生,因此还需确认系统路径下是否存在对应的 `.so` 文件以及权限是否正常授予给服务进程访问这些文件的能力。 ```bash ls /usr/lib/mysql/plugin/caching_sha2_password.so ``` 以上步骤能够有效帮助您排除因身份验证机制差异而引发的各种连接障碍现象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值