您的位置:首页 > 产品设计 > UI/UE

CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory

2020-01-11 08:17 1771 查看

如果你也遇到了这个错误,希望你画两分钟时间看完这篇博客。说不定对你解决错误有帮助。

文章目录

错误

今天在使用c3p0连接池连接数据库时遇到了错误遇到这样一个问题,执行方法的方法的时候特别慢,最后还报了一大堆错误,以下是报错信息截图。


主要错误是:
CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory

错误分析

首先检查配置文件是不是放错位置了,发现配置文件就是在src/main/resources下面,又怀疑里面的用户名、密码、数据库名是不是写错了,发现也没有。接着又检查是不是引入了驱动,发现正常引入。

既然引入了驱动那是不是版本有问题,修改驱动包版本和数据库版本一致,结果无济于事。下面是我配置数据源的信息:

<!-- 配置数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 连接数据库的信息 -->
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/spring_study?characterEncoding=UTF8"></property>
<property name="user" value="root"></property>
<property name="password" value="root"></property>
</bean>


最后修改url,在后面加了下面的代码,惊奇的发现解决了问题。

?useUnicode=true&amp;useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=UTC&amp;characterEncoding=UTF8

总结解决办法

(1)书写配置文件的时候要特别细心,如果多一个空格也有可能报错。注意:name 必须是小写,jdbcUrl的U必须大写

(2)项目未引入对应的驱动jar包 mysql-connector-java-xxx-bin.jar

(3)驱动配置有误,应该是 com.mysql.jdbc.Driver

(4)数据库连接地址有误,应该是 jdbc:mysql://localhost:3306/spring_study?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&characterEncoding=UTF8(这里我以我的项目为准,仅供参考)

(5)数据库密码或帐号有误

(6)配置文件没有放到src的根目录下

(7)驱动包和自己电脑安装的mysql版本不一致(这个也有可能会报错)

(8)网上说的数据库未启动或无权访问这个一般不会出现

  • 点赞 5
  • 收藏
  • 分享
  • 文章举报
扬帆向海 发布了73 篇原创文章 · 获赞 818 · 访问量 6万+ 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐