链接MySQL报错2059 -Authentication plugin ‘caching sha2 password‘ cannot be loaded解决方案

1.报错内容:

2059 -Authentication plugin 'caching sha2 password' cannot be loaded

2.报错截图:

3.原因分析:

如上图的报错提示可知,报错原因是caching_sha2_password不能加载。在MySQL 8.0及以上版本中,默认的用户密码认证插件是’caching_sha2_password’,而在MySQL 5.7及以下版本中,默认的是’mysql_native_password’。如果客户端不支持’caching_sha2_password’,就会出现这个错误。

因为8.0之后mysql更改了密码的加密规则,而目前已有的客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式。

4.解决方案分析:

法1:升级客户端:确保你的数据库客户端支持’caching_sha2_password’。

法2:修改用户的密码认证插件:可以将用户的密码认证插件改为’mysql_native_password’。

下面将以第二种解决方案为例进行演示:

(1)win+R调出运行框,输入cmd,进入命令提示符界面,cd进入MySQL安装目录并登录到MySQL

cd C:Program FilesMySQLMySQL Server 8.0in

mysql -u root -p

(2)修改加密规则,更新密码并刷新

alter user root@localhost identified by 'password' password expire never;

此处的password替换成自己的数据库密码

alter user root@localhost identified with mysql_native_password by 'password';

flush privileges

(3)本地客户端测试–连接成功!

### 解决方案 当遇到 `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、付费专栏及课程。

余额充值