连接 Java - MySQL:不允许公钥检索

2023-12-05

我尝试使用连接器 8.0.11 将 MySQL 数据库与 Java 连接。一切似乎都很好,但我得到了这个例外:

Exception in thread "main" java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed at
     com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:108) at 
     com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95) at
     com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at     
     com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:862) at 
     com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:444) at
     com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230) at
     com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226) at
     com.mysql.cj.jdbc.MysqlDataSource.getConnection(MysqlDataSource.java:438) at
     com.mysql.cj.jdbc.MysqlDataSource.getConnection(MysqlDataSource.java:146) at
     com.mysql.cj.jdbc.MysqlDataSource.getConnection(MysqlDataSource.java:119) at
     ConnectionManager.getConnection(ConnectionManager.java:28) at
     Main.main(Main.java:8)

这是我的连接管理器类:

public class ConnectionManager {

    public static final String serverTimeZone = "UTC";
    public static final String serverName = "localhost";
    public static final String databaseName ="biblioteka";
    public static final int portNumber = 3306;
    public static final String user = "anyroot";
    public static final String password = "anyroot";
    
    public static Connection getConnection() throws SQLException {
    
        MysqlDataSource dataSource = new MysqlDataSource();
    
        dataSource.setUseSSL( false );
        dataSource.setServerTimezone( serverTimeZone );
        dataSource.setServerName( serverName );
        dataSource.setDatabaseName( databaseName );
        dataSource.setPortNumber( portNumber );
        dataSource.setUser( user );
        dataSource.setPassword( password );
        
        return dataSource.getConnection();
    }
}

您应该将客户端选项添加到您的 mysql-connectorallowPublicKeyRetrieval=true允许客户端自动向服务器请求公钥。注意allowPublicKeyRetrieval=True可能允许恶意代理执行 MITM 攻击来获取明文密码,因此默认情况下为 False,必须显式启用。

See MySQL .NET 连接字符串选项

你也可以尝试添加useSSL=false当您将其用于测试/开发目的时

example:

jdbc:mysql://localhost:3306/db?allowPublicKeyRetrieval=true&useSSL=false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

连接 Java - MySQL:不允许公钥检索 的相关文章

随机推荐

  • 使用 ssh 端口转发运行 Erlang Observer

    我有一个远程 Erlang 节点和本地开发人员的 PC 我想启动本地节点 email protected 启动观察者 调用c nl 1和其他调试操作 我写了这个 bin sh export ERL EPMD PORT 43690 PORT
  • 在 Cocoa 应用程序中每晚使用 WebKit.framework?

    我目前正在 Cocoa 应用程序中使用 WebView 我还想在 webview 特别是 FileReader 中使用 HTML5 文件 API FileReader 在最新版本的 WebKit 中不受支持 但在 WebKit nightl
  • 如何在jsp中对url参数进行加密/编码

    我想对一个URL变量进行加密 这样用户在jsp中传递的信息就无法看到或修改 这是一个示例 URL localhost somewebpage name jsp id 1234 tname Employee March 2013 这里我想对参
  • Spring MVC - HTTP 状态 500 - Servlet loginDispacher 的 Servlet.init() 引发异常

    我做了一个简单的程序 但出现以下错误 我正在使用 Eclipse Kelper 和 Tomcat 7 0 尝试了很多事情 但没有任何对我有用 HTTP 状态 500 servlet loginDispacher 的 Servlet init
  • 根据另一个数据帧的多个列条件创建列

    假设我有两个数据框 条件和数据 import pandas as pd conditions pd DataFrame class 1 2 3 4 4 5 5 4 4 5 5 5 primary lower 0 0 0 160 160 16
  • Python SqlAlchemy - AttributeError:映射器

    基于我的模型 from sqlalchemy ext declarative import declarative base from sqlalchemy import Column Integer String ForeignKey f
  • iOS:如何查询WiFi状态

    是否可以以编程方式查询 iOS 上的 WiFi 状态 启用 禁用 当启用 WiFi 并且设备未连接到任何网络时 查询应返回 true EDIT 我知道提供的功能Reachability类 据我了解 它无法识别 WIFI 的已启用但未连接状态
  • while 循环 PHP get_result 不起作用

    我正在尝试使用 MySQl 准备好的语句从数据库中获取行并获取结果 然而这不起作用 请有人能看到我哪里出了问题吗 我已经尝试了几个小时的解决方案 但无法使其发挥作用 该页面只是不加载 就好像查询失败一样 tag trim GET tag s
  • 部署后在django中使用scipy.stats.stats

    我正在为一个严重依赖 scipy stats stats scipy 版本 0 9 0 的包创建一个由 django 支持的 1 3 接口 称为ovl 在早期开发阶段 使用 djangos 自己的开发服务器 这没有问题 使用apache d
  • 带有 WSDL for R 的 SOAP 客户端

    我正在尝试使用 SSOAP 包为 R 的 SOAP 客户端编写代码 这是我最初的代码 wsdl lt getURL http sistemas cvm gov br webservices Sistemas SCW CDocs WsDown
  • 如何在 WinForms 中绘制形状[重复]

    这个问题在这里已经有答案了 我正在尝试编写类似绘画的程序 您可以通过选择所需的形状来绘制填充形状 单击图片框并拖动鼠标以获得所需的尺寸 但THIS当我拖动时可能会发生 当我使用refresh 之前绘制的形状会自行删除 我应该怎么做才能绘制填
  • 无法创建圆角对话框(Android-Eclipse)

    我正在尝试为我的应用程序的对话框制作自定义对话框形状 我已经搜索这个主题几个小时了 但我找到的解决方案对我不起作用 这就是为什么我向你询问我自己的问题 我想要一个带有圆角并显示标题的对话框 然后是一个带有一些文本的 ScrollView 唯
  • Excel VBA For-Next 循环将数据从一个 WB 提取到另一个 WB

    我正在开发一个 for 循环 该循环根据第 12 列中等于 Airfare 的字符串提取整行数据 这个想法是复制第 12 列 EXPENSE TYPE 是机票的数据行并将其粘贴到第二个工作簿中 我的代码 如下 未正确循环所有 120 行数据
  • 查找忽略重叠的总分钟数(将基于光标的答案转换为 CTE)

    有一个现有问题该问题询问如何查找多个日期范围内有多少分钟 忽略重叠 给出的示例数据是 userID 不是特别相关 Available ID userID availStart availEnd 1 456 2012 11 19 16 00
  • 从低完整性进程获取对 MemoryMappedFile 的访问

    我试图在中等完整性进程上创建 MemoryMappedFile 然后在低完整性子进程上打开相同的文件 并将此共享内存用于 IPC 没有真正的磁盘文件 使用MemoryMappedFile CreateNew 我的问题是低完整性进程无法打开共
  • 如何仅按顶部标题行对表格进行排序

    我知道这个问题以前曾被问过 但没有解决方案让我满意 我想将列过滤输入放置在正文和列标题之间 我把它们放在一个额外的 tr inside thead 许多消息来源说这有效 一切正常 只是现在它链接了这些输入而不是标题的排序 你可以看一个例子h
  • 我们是否应该始终在类中包含默认构造函数?

    一位同事问我这个问题 我们是否应该始终在类中包含默认构造函数 如果是这样 为什么 如果不是 为什么不呢 Example public class Foo Foo Foo int x int y 我也有兴趣从专家那里得到一些关于这个问题的见解
  • android:TextView每行限制10个字符

    我从 EditText 读取值并将其写入 TextView editTitle1 addTextChangedListener new TextWatcher public void afterTextChanged Editable s
  • 将EventListener添加到多个复选框

    下面 我有一个简单的表单 其中有 4 个复选框作为席位 我想做的是 当访客选择带有 ID 的座位复选框时A2 and A4 我希望在单击名称为的段落后立即显示这些 ID 及其总价值id demo 单击 立即预订 按钮后 应将总值分配给名为的
  • 连接 Java - MySQL:不允许公钥检索

    我尝试使用连接器 8 0 11 将 MySQL 数据库与 Java 连接 一切似乎都很好 但我得到了这个例外 Exception in thread main java sql SQLNonTransientConnectionExcept