解决CannotAcquireResourceException: A ResourcePool could notacquire a resource from its primary factor


Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!

Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could notacquire a resource from its primary factory or source.

 

可能解决该问题的办法有:

1,驱动配置有误:driver=com.mysql.jdbc.Driver

2,数据库连接地址有误:url=jdbc:mysql://localhost:3306/test?3useUnicode=true&characterEncoding=utf8

3,密码或帐号有误:username=root  password=root

(上面三条一般都写在配置文件中,且一般不会写错)

4,数据库未启动或无权访问

5,项目未引入对应的数据库驱动

6,mysql root没有远程访问的权限,需要增加权限(如果是连接本地localhost数据库则不需要,连接远程数据库才需要),增加权限的步骤如下:

进入mysql数据库:

grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

flush privileges;

 

如果以上都没问题,那可能是数据库驱动版本的问题:

  • 特别注意:不同mysql版本,对应所需要的驱动版本也不同。如常用的MySQL 5.7,使用mysql-connector-java-5.x.x-bin.jar。

      我这次遇到这个问题,是我新系统安装的最新MySQL 8.0.11,却使用的mysql5的驱动,由此产生了这个异常。所以更换MySQL 8对应的驱动就可以了。

  • 还有一点:MySQL在高版本需要指明是否进行SSL连接useSSL=false

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值