ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded; 的解决办法

本文解决MySQL8.0.11版本中远程登录时出现的ERROR2059异常,介绍如何配置my.cnf文件以使用mysql_native_password认证方式,包括添加远程IP用户及重启服务。

运行环境:centos7.4 +MySQL 8.0.11

 

关于这个问题,我是在MySQL安装完成后,使用远程进行登录时遇到的问题,具体异常信息如下:

“ ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded; ”

可以看到MySQL8.0.11版本默认的认证方式是caching_sha2_password ,而在MySQL5.7版本则为mysql_native_password。

若想在MySQL8.0版本中继续使用旧版本中的认证方式需要在my.cnf 文件中配置并重启,因为此参数不可动态修改。


 
  1. mysql> set global default_authentication_plugin='mysql_native_password';

  2. ERROR 1238 (HY000): Variable 'default_authentication_plugin' is a read only variable

写入my.cnf 文件后重启MySQL:

  1. vim my.cnf

  2. [mysqld]

  3. default_authentication_plugin=mysql_native_password

二如下图:

 

 

解决办法:

关于这个问题,看起来很难,实则很简单,例如我需要在IP地址为192.168.78.138的主机上,远程登录到安装好的MySQL数据库服务,则需要在MySQL服务上添加一个IP为192.168.78.138的用户即可,如下图:

 

注意:如果你的也是最新版本,则需要在my.ini的[mysqld]下添加一行:

default_authentication_plugin = mysql_native_password 

在重新初始化MySQL服务即可!!!

用户添加完成后,现在就可以远程进行登录了,如下图:

 

 

 

 

 

 

 

好了,关于 ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded;  就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,可以给我留言。
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。

### 解决 Django 连接 MySQL 出现 "Authentication plugin ‘caching_sha2_password’ cannot be loaded" 错误 当尝试通过 Django 应用程序连接到 MySQL 数据库时,可能会遇到 `OperationalError` 报错 `(2059, "Authentication plugin 'caching_sha2_password' cannot be loaded")`[^1]。此错误通常发生在较新的 MySQL 版本中,默认的身份验证插件设置为 `caching_sha2_password` 而不是传统的 `mysql_native_password`。 #### 方法一:更改 MySQL 用户的默认身份验证插件 可以通过修改特定用户的认证方式来解决问题: ```sql ALTER USER 'your_username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; ``` 上述命令将指定用户的身份验证机制更改为 `mysql_native_password` 并刷新权限表以应用更改[^3]。 #### 方法二:创建新用户并指明使用旧版加密算法 对于新建的应用专用账户来说,在创建之初就设定好合适的参数也是一种有效的预防措施: ```sql CREATE USER 'new_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; GRANT ALL PRIVILEGES ON database_name.* TO 'new_user'@'%'; FLUSH PRIVILEGES; ``` 这一步骤确保了即使是在更高版本的 MySQL 中也能兼容老式的客户端工具或框架[^4]。 #### 方法三:调整 MySQL 配置文件禁用缓存 SHA-2 密码支持 编辑 `/etc/mysql/my.cnf` 或者 Windows 下对应的配置文件路径下的 `[mysqld]` 段落加入如下选项: ```ini default_authentication_plugin=mysql_native_password ``` 保存后重启 MySQL 服务使改动生效[^5]。 以上三种途径任选其一执行完毕之后再次测试 Django 对 MySQL 的访问应该就能恢复正常工作状态了。
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值