解决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

猜你喜欢

转载自blog.csdn.net/ljheee/article/details/81097624