java.sql.SQLNonTransientConnectionException:
时间: 2023-11-10 11:00:32 浏览: 230
java.sql.SQLNonTransientConnectionException是一个连接异常,通常由于底层异常导致无法加载连接类。根据提供的引用,可能是由于数据源配置问题导致的。
在Spring配置文件中,需要注意以下几点:
1. 确保数据库驱动类的名称正确,根据引用,8版本以下的驱动类名称为com.mysql.jdbc.Driver,而8版本及以上的为com.mysql.cj.jdbc.Driver。
2. 确保数据源的用户名、密码、URL等配置正确,并且确保数据库服务正常运行。
3. 检查配置中是否存在其他错误,例如缺少必要的依赖项。
如果以上步骤都正确,但仍然出现连接异常,请检查数据库服务是否正常运行,并尝试重新启动数据库服务。
相关问题
java.sql.sqlnontransientconnectionexception:
java.sql.SQLNonTransientConnectionException是Java的一个异常类,表示在处理数据库连接时出现了非暂时性(即持久性)的连接故障或错误。通常会与以下情况相关:数据库未启动、网络中断、数据库身份验证失败、超时或过多连接等问题。
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
这是一个 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 加密连接可能会降低数据安全性,因此需要在具体情况下权衡利弊。
阅读全文