Caused by: java.lang.RuntimeException: java.sql.SQLException: Connections could not be acquired from the underlying database!
at cn.itcast.goods.category.service.CategoryService.findAll(CategoryService.java:27)
at cn.itcast.goods.category.web.servlet.CategoryServlet.findAll(CategoryServlet.java:31)
... 30 more
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:615)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at cn.itcast.jdbc.JdbcUtils.getConnection(JdbcUtils.java:43)
at cn.itcast.jdbc.TxQueryRunner.query(TxQueryRunner.java:30)
at cn.itcast.goods.category.dao.CategoryDao.findAll(CategoryDao.java:67)
at cn.itcast.goods.category.service.CategoryService.findAll(CategoryService.java:25)
... 31 more
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1406)
at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:594)
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:514)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutAndMarkConnectionInUse(C3P0PooledConnectionPool.java:681)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:608)
... 36 more
错误信息如上:
经过百度查找得到一些解决方法:
一、异常提示:A ResourcePool could not acquire a resource from its primary factory or sour
二、产生原因:数据库连接配置有误,如用户名是否正确,密码前后是否有多余的空格,URL和Driver是否完全匹配等;
三、解决办法:一一核对用户名、密码、URL、Driver等是否完全正确,并且检查数据库实例(oracle)是否正确。
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:615)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at cn.itcast.jdbc.JdbcUtils.getConnection(JdbcUtils.java:43)
at cn.itcast.jdbc.TxQueryRunner.query(TxQueryRunner.java:30)
at cn.itcast.goods.category.dao.CategoryDao.findAll(CategoryDao.java:67)
at cn.itcast.goods.category.service.CategoryService.findAll(CategoryService.java:25)
... 31 more
百度得到错误原因如下:
1,驱动配置有误:driver=com.mysql.jdbc.Driver
2,数据库连接地址有误:url=jdbc:mysql://localhost:3306/test?3useUnicode=true&characterEncoding=utf8
3,密码或帐号有误:username=root, password=root
4,数据库未启动或无权访问
5,项目未引入对应的驱动jar包mysql-connector-java-xxx-bin.jar
6,mysql root没有远程访问的权限,需要增加权限,增加权限的步骤如下:
进入mysql数据库:
grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;
flush privileges;
7.连接池链接达到上限.(我的错误原因)
每次将myeclipse的工程部署到服务器上的时候都会占用连接池的链接,多次之后链接达到连接池的上限,就是使得无法获得连接或者使mysql关闭掉.
解决方法:重启服务器释放连接池所欲的连接