Navicat低版本连接mysql8+版本遭遇2059 - authentication plugin ‘caching_sha2_password‘的解决办法

1 原因:
mysql8+版本的默认插件为caching_sha2_password,而低版本的Navicat的验证插件为mysql_native_password,使用低版本的Navicat连接mysql8.x版本是会出现上述验证插件错误的问题。

2 问题呈现:
在这里插入图片描述
如图,两种插件的密码迥然不同

3 解决办法:
直接使用一下语句更改用户的插件验证方式:

ALTER USER '用户名'@'主机ip' IDENTIFIED WITH mysql_native_password BY '访问密码';

ps: 主机ip可以使用%代替,表示所有主机

但需要注意的是使用该方法修改验证方式后会到导致原密码不可用,等同于修改账号密码;如果原密码大范围使用,建议新建账号在进行上述操作:

创建账号: CREATE USER '用户名'@'主机ip' IDENTIFIED BY '访问密码';

账号授权: grant all privileges on *.* to '用户名'@'主机ip' with grant option;

刷新权限: flush privileges;
### 解决 MySQL 'caching_sha2_password' 身份验证插件导致的连接问题 #### 修改用户身份验证方式 对于因 `caching_sha2_password` 插件引发的问题,一种解决方案是更改用户的认证机制为 `mysql_native_password`。这可以通过执行 SQL 命令实现: ```sql ALTER USER 'your_username'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; ``` 此操作会将指定账户的身份验证方法切换至更为兼容的形式[^4]。 #### 更新客户端配置文件 另一种处理方案涉及调整客户端应用程序使用的配置文件(如 my.cnf 或 my.ini),加入如下设置以确保其能够识别并适配新类型的密码哈希算法: ```ini [client] default-authentication-plugin=mysql_native_password ``` 通过这种方式可以使得客户端软件自动选用合适的认证协议[^3]。 #### 升级或更换客户端工具 如果当前所用的数据库管理工具版本较低,则建议考虑升级该工具到最新版;或者改用其他已知支持 `caching_sha2_password` 的替代品。例如,在使用 Navicat Premium 12 面临此类难题时,可尝试更新程序本身或是寻找官方发布的补丁包来解决问题[^1]。 #### 安装缺失的身份验证插件 当提示无法加载特定的身份验证插件时,确认服务器端确实安装了必要的组件也非常重要。可通过命令行检查现有插件列表,并按需导入缺少的部分: ```bash SELECT PLUGIN_NAME, PLUGIN_STATUS FROM information_schema.PLUGINS WHERE PLUGIN_TYPE='AUTHENTICATION'; INSTALL PLUGIN caching_sha2_password SONAME 'auth_caching_sha2.so'; ``` 上述查询语句有助于诊断是否存在未正确部署的情况[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值