为了账号安全,请及时绑定邮箱和手机立即绑定

配置文件都检查过了,jdbc.properties中也是用 如jdbc.driver这种格式,但是junit test 时报checkout a Connection has timed out.错误,哪位大佬知道啊?

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
### The error may exist in file [D:\eclipse-workspace\seckill\target\classes\mapper\SeckillDao.xml]
### The error may involve org.seckill.dao.SeckillDao.queryById
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
 at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:76)
 at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:399)
 at com.sun.proxy.$Proxy13.selectOne(Unknown Source)
 at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:165)
 at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:69)
 at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53)
 at com.sun.proxy.$Proxy14.queryById(Unknown Source)
 at org.seckill.dao.SeckillDaoTest.queryById(SeckillDaoTest.java:30)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
 at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:73)
 at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)
 at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:73)
 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:224)
 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83)
 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
 at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
 at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68)
 at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163)
 at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
 at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
### The error may exist in file [D:\eclipse-workspace\seckill\target\classes\mapper\SeckillDao.xml]
### The error may involve org.seckill.dao.SeckillDao.queryById
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
 at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
 at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:122)
 at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:113)
 at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:73)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:386)
 ... 35 more
Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
 at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
 at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:82)
 at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:68)
 at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:315)
 at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:75)
 at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:61)
 at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:303)
 at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:154)
 at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:102)
 at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:82)
 at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:120)
 ... 42 more
Caused by: java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
 at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
 at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:65)
 at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:527)
 at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
 at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
 at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
 ... 52 more
Caused by: com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResourcePool@1a6f5124 -- timeout at awaitAvailable()
 at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1317)
 at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
 at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
 at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
 ... 55 more


正在回答

3 回答

检查你安装的MySql数据库版本是否与你引入的mysql jar包匹配? 

如果MySql数据库的版本为5.x, 而依照视频引入6.x 的mysql 的jar包, 就会报这个错误

0 回复 有任何疑惑可以回复我~
#1

qq_茶味人生_0 提问者

非常感谢!我的mysql是8.0版本的
2018-05-24 回复 有任何疑惑可以回复我~
#2

我就是来AC的 回复 qq_茶味人生_0 提问者

8.0版本引入了 <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> 可以跑吗,为什么我这样还是不行……
2018-08-07 回复 有任何疑惑可以回复我~
#3

qq_茶味人生_0 提问者 回复 我就是来AC的

还有jdbc.properties不一样。改为 jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql:///seckill?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false jdbc.username=root jdbc.password=a234f6*
2018-08-11 回复 有任何疑惑可以回复我~
#4

慕容2098438 回复 我就是来AC的

请问你解决了吗
2018-08-20 回复 有任何疑惑可以回复我~
#5

qingmeng123

你好,请问我的mysql版本是5.7.26,引入的connected是5.1.13,因为我加入5.7.26是红色的,加载不出来,然后也有同样的错误,请问是为什么呀
2019-07-01 回复 有任何疑惑可以回复我~
查看2条回复

我数据库版本5.5的,然后导入5.1.13好像不行,换了好几个版本还是连不上,错误信息和你一样

0 回复 有任何疑惑可以回复我~
#1

weibo_慕后端5049864

改成jdbc.url = jdbc:mysql://localhost/seckill?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=gbk 试试 注意characterEncoding=gbk
2019-06-24 回复 有任何疑惑可以回复我~

解决了吗

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

配置文件都检查过了,jdbc.properties中也是用 如jdbc.driver这种格式,但是junit test 时报checkout a Connection has timed out.错误,哪位大佬知道啊?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信