【JDBC 报错】Connections could not be acquired from the underlying database!

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 项目启动报错:    1 [2016-07-13 10:04:15,074] ERROR org.apache.ibatis.executor.BaseExecutor Could not get a databaseId from dataSource 2 java.

项目启动报错:

  

 1 [2016-07-13 10:04:15,074] ERROR org.apache.ibatis.executor.BaseExecutor Could not get a databaseId from dataSource 
 2 java.sql.SQLException: Connections could not be acquired from the underlying database!
 3     at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:104)
 4     at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:264)
 5     at com.mchange.v2.c3p0.PoolBackedDataSource.getConnection(PoolBackedDataSource.java:94)
 6     at com.mchange.v2.c3p0.ComboPooledDataSource.getConnection(ComboPooledDataSource.java:521)
 7     at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseProductName(VendorDatabaseIdProvider.java:77)
 8     at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseName(VendorDatabaseIdProvider.java:62)
 9     at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseId(VendorDatabaseIdProvider.java:50)
10     at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:445)
11     at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:336)
12     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571)
13     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)
14     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
15     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
16     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)
17     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
18     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
19     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
20     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:610)
21     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
22     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
23     at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
24     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
25     at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
26     at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4210)
27     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4709)
28     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:802)
29     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
30     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583)
31     at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1080)
32     at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1003)
33     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:507)
34     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322)
35     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:325)
36     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
37     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1068)
38     at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)
39     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
40     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
41     at org.apache.catalina.core.StandardService.start(StandardService.java:525)
42     at org.apache.catalina.core.StandardServer.start(StandardServer.java:759)
43     at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
44     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
45     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
46     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
47     at java.lang.reflect.Method.invoke(Unknown Source)
48     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
49     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
50 Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
51     at com.mchange.v2.resourcepool.BasicResourcePool.awaitAcquire(BasicResourcePool.java:972)
52     at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:208)
53     at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:260)
54     ... 45 more
View Code

 

解决办法:

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-5.1.6-bin.jar

6、mysql root没有远程访问的权限,需要增加权限,增加权限的步骤如下:
 进入mysql数据库:
 grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
 flush privileges;

 

延伸:

1、在普通java项目中使用 mybatis+C3p0+spring时也遇见上述问题。

问题原因是:在xml配置文件中显示声明了自动装载  <beans default-autowire="byName">
解决方法:    把自动装载设置去掉,就没有问题了,应该使用默认的 byType

2、同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞,引发的。

解决方法:  重启数据库服务或者使用mysqladmin flush-hosts 命令清理一下hosts文件。

3、maven+spring 项目,用了org.apache.tomcat.jdbc.pool.DataSource;  报错:Could not get JDBC Connection; nested exception is java.sql.SQLException: com.mysql.jdbc.Driver

解决方法:  需要加入 tomcat-jdbc的引用

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
17天前
|
关系型数据库 MySQL Java
报错 create connection SQLException, url: jdbc:mysql://noreggie?serverTimezone=Asia/Shanghai&useUnicod
报错 create connection SQLException, url: jdbc:mysql://noreggie?serverTimezone=Asia/Shanghai&useUnicod
|
6月前
|
SQL
报错org.springframework.jdbc.UncategorizedSQLException: Error attempting to get column ‘xxx‘ from resu
报错org.springframework.jdbc.UncategorizedSQLException: Error attempting to get column ‘xxx‘ from resu
173 0
报错org.springframework.jdbc.UncategorizedSQLException: Error attempting to get column ‘xxx‘ from resu
|
3月前
|
SQL 消息中间件 Java
Flink报错问题之jdbc表报错如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
3月前
|
关系型数据库 MySQL Java
Flink cdc报错问题之使用jdbc connector报错如何解决
Flink CDC报错指的是使用Apache Flink的Change Data Capture(CDC)组件时遇到的错误和异常;本合集将汇总Flink CDC常见的报错情况,并提供相应的诊断和解决方法,帮助用户快速恢复数据处理任务的正常运行。
|
9月前
|
关系型数据库 MySQL 数据库
java.sql.SQLException: Connections could not be acquired from the underlying database!
java.sql.SQLException: Connections could not be acquired from the underlying database!
144 0
|
4月前
|
SQL 存储 Java
JDBC (Java DataBase Connectivity)
JDBC (Java DataBase Connectivity)
39 0
|
5月前
|
Java 数据库连接 数据库
Flink全托管,holo 库同步到另一个库,报错failed to get user from ak 亲,请问是哪种权限缺失?Flink 配置中使用的是holo. jdbc 的user和password 。
Flink全托管,holo 库同步到另一个库,报错failed to get user from ak 亲,请问是哪种权限缺失?Flink 配置中使用的是holo. jdbc 的user和password 。
42 1
|
7月前
|
SQL 存储 Java
JDBC(Java Database Connectivity)详解
JDBC(Java Database Connectivity)是 Java 中用于连接和操作数据库的标准 API。它允许 Java 应用程序与不同类型的数据库进行交互,执行查询、插入、更新和删除等操作。本文将详细介绍 JDBC 的各个类及其用法,以帮助您更好地理解和使用 JDBC。
131 1
|
9月前
|
安全 关系型数据库 MySQL
【报错】sqli-labs靶场搭建出现“Unable to connect to the database: security”
【报错】sqli-labs靶场搭建出现“Unable to connect to the database: security”
603 0
|
9月前
|
关系型数据库 MySQL 数据库
【报错】DVWA遇到Could not connect to the database service. Please check the config file. Database Error
【报错】DVWA遇到Could not connect to the database service. Please check the config file. Database Error
614 0