win10使用c3p0连接Mysql8.0报A ResourcePool could not acquire a resource from its primary factory or source

相信大家在第一次搭建项目或者拉取别人的项目代码本地跑的时候,总会出现各种各样的问题,这个错是较为常见的一个数据库无法获取连接的错,如果大家看了网上的各种博主说的数据库配置,权限问题等都没解决的话,那么大概率是因为你的mysql版本问题了,我先贴出详细的报错信息:

严重: Servlet.service() for servlet [springmvc] in context with path [/ShoppingApp] threw exception [Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!] with root cause
com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.

具体的问题原因是这样的,如果是别人的代码的话,很多人用的连接器jar包都是低版本的,类似于这个mysql-connector-java-5.1.30.jar ,而8.0版本mysql如果使用的是低版本的连接器jar包会导致这个报错,版本不兼容,还有一点是8.0版本的数据库配置信息得略微做点改变,以我用c3p0连接池的properties文件写配置为例:
c3p0.driverClass=com.mysql.cj.jdbc.Driver c3p0.jdbcUrl=jdbc:mysql://127.0.0.1:3306/cosmeticsshop?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8 c3p0.user=root c3p0.password=root c3p0.maxPoolSize=20 c3p0.maxIdleTime = 0 c3p0.minPoolSize=6 c3p0.initialPoolSize=5
那么问题就解决了,总结下分为两步,
1:更换lib中的mysql-connector-java-低版本号.jar,更换为与你的mysql版本兼容的连接器jar包,以8.0版本为例,更换为:mysql-connector-java-8.0.18.jar(对应版本的jar包可以直接去你安装的mysql的文件夹中找到(如果你是msi一键安装版本安装的话),如果是自己一步步配置安装的话直接去官网找到对应的版本下载连接器jar包)
2:更改数据库配置文件信息,如上。
注意:走这一步之前你先得排查网上大部分博主说的数据库配置信息,mysql账号权限,远程连接是否打开等常见较为明显的错误,排查过后没有问题再从这方面着手。
以上就是解决方案了,本博主旨在分享个人在编码过程中的各种比较隐晦且网上没有多少针对此问题的解决方案的情况下的解决方案。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值