java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228) at comm.login$GetConnection.GetConnection(login.java:171) at JZS.comm.util.CheckUsers.<init>(CheckUsers.java:13) at comm.login.actionPerformed(login.java:107) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6636) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) at java.desktop/java.awt.Component.processEvent(Component.java:6401) at java.desktop/java.awt.Container.processEvent(Container.java:2263) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5012) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4844) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java
时间: 2023-12-07 13:03:08 浏览: 266
这是一个 Java 异常,提示 "Public Key Retrieval is not allowed",翻译为“不允许公钥检索”。这通常出现在使用 MySQL 数据库连接时,可能是因为 MySQL 8.0.11 版本之后的驱动程序默认启用了 SSL 加密连接,而在某些情况下,这会导致公钥检索失败。
要解决这个问题,可以尝试以下两种方法:
1. 在数据库连接 URL 中添加 "allowPublicKeyRetrieval=true" 参数,例如:
jdbc:mysql://localhost:3306/mydatabase?allowPublicKeyRetrieval=true
2. 禁用 SSL 加密连接,可以在数据库连接 URL 中添加 "useSSL=false" 参数,例如:
jdbc:mysql://localhost:3306/mydatabase?useSSL=false
需要注意的是,禁用 SSL 加密连接可能会降低数据安全性,因此需要在具体情况下权衡利弊。
相关问题
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
"java.sql.SQLNonTransientConnectionException: Public key retrieval is not allowed" 意思是在连接数据库时,程序试图获取公钥,但是被禁止了。这通常是因为数据库服务器上禁用了 SSL 或者TLS 认证。可以尝试更改数据库服务器配置或者使用不需要 SSL/TLS 的连接方式来解决问题。
java.sql.sqlnontransientconnectionexception: public key retrieval is not allowed
"java.sql.SQLNonTransientConnectionException: Public key retrieval is not allowed" 意思是在连接数据库时,程序试图获取公钥,但是被禁止了。这通常是因为数据库服务器上禁用了 SSL 或者TLS 认证。可以尝试更改数据库服务器配置或者使用不需要 SSL/TLS 的连接方式来解决问题。
阅读全文