今天给帮师弟写代码,在eclipse中导入了他的工程,发现数据库访问出现以下问题:
java.sql.SQLException: Connections could not be acquired from the underlying database!
通过某度搜索,尝试了几个设置数据库和配置tomcat的方法后都不好用。转变思路查看数据库版本和导入工程的jar包,发现工程中导入的是mysql-connector-java-5.0.8-bin.jar和c3p0-0.9.1.2.jar,我的数据库版本8.0.17。
显然我的mysql和师弟机子里的版本不一致,这才是报错的关键。
将上述的jdbc和c3p0的jar包删除,导入以下的三个jar包:
- c3p0-0.9.5.2
- mchange-commons-java-0.2.11
- mysql-connector-java-8.0.14
并将配置文件更改成如下格式(<property name="driverClass">和<property name="jdbcUrl">有变化):
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/XXXX?useSSL=false&serverTimezone=UTC</property>
<property name="user">root</property>
<property name="password">1234</property>
<!-- 初始化连接池数量 -->
<property name="initialPoolSize">10</property>
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime">60</property>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">25</property>
<!--连接池中保留的 最小连接数,Default:3 -->
<property name="minPoolSize">10</property>
</default-config>
</c3p0-config>
解决问题。