org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
时间: 2023-08-15 22:12:03 浏览: 65
这个异常通常是由于数据库连接配置的问题引起的。在这种情况下,可能是因为数据库连接URL中包含了`allowPublicKeyRetrieval=false`参数,导致公钥检索被禁止。
解决这个问题的一种方法是在数据库连接URL中添加`allowPublicKeyRetrieval=true`参数。例如,如果你使用的是MySQL数据库,可以尝试修改连接URL如下:
```
jdbc:mysql://localhost:3306/database?allowPublicKeyRetrieval=true
```
另外,你还可以检查以下几点:
1. 确保数据库服务正在运行,并且能够正常访问。
2. 检查数据库连接的用户名和密码是否正确。
3. 确保数据库驱动程序的版本与你的应用程序兼容。
4. 检查防火墙设置是否允许应用程序连接数据库。
如果问题仍然存在,请提供更多的详细信息,以便我能够给出更准确的解决方案。
相关问题
org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.
org.springframework.jdbc.CannotGetJdbcConnectionException错误是由于无法获取JDBC连接引起的。具体的嵌套异常是java.sql.SQLException: Access denied for user 'root'@'localhost'的错误。
通常,解决这个问题有几个常见的方法。首先,你可以检查db.properties(或jdbc.properties)文件中数据库配置是否正确,并确保没有任何空格。有时候还需要添加时区信息。
其次,你可能需要检查mysql-connect-java的版本是否正确。如果你使用的是5版本左右的mysql-connect-java,那么jdbc.driver不需要加上"cj"。但是如果你使用的是8版本左右的,则需要加上"cj"。
最后,你可以尝试使用正确的写法来配置jdbc.driver和jdbc.url。例如,正确的写法可能是:jdbc.driver=com.mysql.cj.jdbc.Driver,jdbc.url=jdbc:mysql://localhost:3306/boot_crm?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true。
通过检查配置文件和版本号,以及使用正确的写法,你应该能够解决这个错误并成功获取JDBC连接。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [spring boot整合mybatis连接不上数据库](https://download.csdn.net/download/weixin_38623000/13685882)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [(已解决)org.springframework.jdbc.CannotGetJdbcConnectionException:Could not get JDBC Connection;...](https://blog.csdn.net/qq_50765135/article/details/124728926)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection;](https://blog.csdn.net/m0_64259792/article/details/125134203)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
java redis pubSub org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection
根据提供的引用内容,出现"org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection"异常的原因可能是无法获取JDBC连接。这可能是由于以下原因之一导致的:
1. 数据库连接配置错误:请确保数据库连接的配置信息(如URL、用户名、密码)正确,并且数据库服务器正在运行。
2. 数据库连接池问题:如果使用了连接池,可能是连接池配置不正确或连接池已满导致无法获取连接。可以尝试增加连接池的最大连接数或检查连接池配置是否正确。
3. 数据库服务器故障:数据库服务器可能出现故障或不可用。可以尝试重启数据库服务器或联系数据库管理员进行故障排查。
以下是一个Java代码示例,演示如何使用Redis的pub/sub功能,并处理"org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection"异常:
```java
import org.springframework.jdbc.CannotGetJdbcConnectionException;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;
public class RedisPubSubExample {
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");
try {
jedis.subscribe(new JedisPubSub() {
@Override
public void onMessage(String channel, String message) {
// 处理接收到的消息
System.out.println("Received message: " + message);
}
}, "channel");
} catch (CannotGetJdbcConnectionException e) {
// 处理获取JDBC连接异常
System.out.println("Failed to obtain JDBC Connection: " + e.getMessage());
} finally {
jedis.close();
}
}
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/octet-stream](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)