【问题标题】:Unable to load authentication plugin 'caching_sha2_password' [duplicate]无法加载身份验证插件“caching_sha2_password”[重复]
【发布时间】:2018-10-16 01:17:20
【问题描述】:

我遇到了错误

无法使用 com.mysql.jdbc.Driver 建立与 jdbc:mysql://localhost:3306/world?zeroDateTimeBehavior=convertToNull 的连接(无法加载身份验证插件“caching_sha2_password”。)

在netbean中建立了连接。

【问题讨论】:

标签: java mysql netbeans


【解决方案1】:

较新版本的 MySQL 默认为caching_sha2_password。如果您想禁用它,请按照以下步骤操作

  1. 以 root 用户身份登录到您的 MYSQL 控制台,如下所示。

例如mysql -u YOUR_ROOT_USER_NAME -p YOUR_ROOT_USER_PASSWORD

  1. 然后通过替换YOUR_ROOT_USER_NAMEYOUR_ROOT_USER_PASSWORD来执行命令

ALTER USER 'YOUR_ROOT_USER_NAME'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOUR_ROOT_USER_PASSWORD';

在此之后连接任何客户端时,您将不再收到任何“caching_sha2_password”异常。

【讨论】:

  • 按照你的回答,现在又出现了一个异常:java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
  • 此更改与 Java 无关。这个答案主要与MySQL数据库有关。通常要解决 Java ClassCastException,请检查您的代码、驱动程序和 Java 版本。 @sansingh ..检查此线程以获取您的问题的可接受答案stackoverflow.com/questions/46131295/…
  • 这对我的 MySQL 8.0.19 有效
  • 请注意,上述用户不必为主机localhost定义。您可以通过SELECT host, user FROM mysql.user;查询用户属于哪个主机,并相应地更改ALTER USER 'YOUR_ROOT_USER_NAME'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOUR_ROOT_USER_PASSWORD';
  • 这对我有用! ALTER USER 'YOUR_ROOT_USER_NAME'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOUR_ROOT_USER_PASSWORD';数据库版本= mysql 8.0.21
【解决方案2】:

按照以下步骤操作:

  • 只需关闭系统上的防火墙和控制面板上的安全,
  • 创建一个新的动态网络项目
  • 从项目中复制所有的类字段和java文件
  • 在构建路径版本 8.0 中添加 jar
  • 在项目方面选择 tomcat
  • 在 lib 中复制 jAR
  • 尝试运行 jdbcconnection 程序

它会运行。

【讨论】:

    猜你喜欢
    • 2020-12-07
    • 2019-12-25
    • 2018-11-07
    • 1970-01-01
    相关资源
    最近更新 更多