博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置Spring数据源遇到的那些坑。。。
阅读量:5324 次
发布时间:2019-06-14

本文共 8973 字,大约阅读时间需要 29 分钟。

作为一名Sping初学者,今天第一次配置Spring数据源就遇到好几个坑人的地方,记录下来做个备忘。

1.

Mon Nov 27 21:42:01 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.Mon Nov 27 21:42:02 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.Mon Nov 27 21:42:02 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.Mon Nov 27 21:42:02 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

向数据库发送请求后一直都在报这个,其实这个问题早在学习jdbc时就遇到了,只需要在jdbc的URL后面加上  useUnicode=true&characterEncoding=utf-8&useSSL=false 即可;

2.

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

原来的jdbc驱动是 com.mysql.jdbc.Driver , 改为  com.mysql.cj.jdbc.Driver 即可;

3.

1 27-Nov-2017 21:58:49.667 警告 [C3P0PooledConnectionPoolManager[identityToken->1hgefi99r1yeux661are7zk|12876430]-HelperThread-#0] com.mchange.v2.resourcepool.BasicResourcePool. com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@74bb9e1f -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (10). Last acquisition attempt exception:  2  java.sql.SQLException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support. 3     at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121) 4     at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) 5     at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:81) 6     at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:55) 7     at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:65) 8     at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:70) 9     at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:853)10     at com.mysql.cj.jdbc.ConnectionImpl.
(ConnectionImpl.java:440)11 at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)12 at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:221)13 at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)14 at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)15 at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)16 at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:203)17 at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)18 at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)19 at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)20 at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)21 at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)22 Caused by: com.mysql.cj.core.exceptions.InvalidConnectionAttributeException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.23 at sun.reflect.GeneratedConstructorAccessor15.newInstance(Unknown Source)24 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)25 at java.lang.reflect.Constructor.newInstance(Constructor.java:423)26 at com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:54)27 at com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:73)28 at com.mysql.cj.core.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:118)29 at com.mysql.cj.mysqla.MysqlaSession.configureTimezone(MysqlaSession.java:360)30 at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1434)31 at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:986)32 at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:843)33 ... 12 more34 35 27-Nov-2017 21:58:49.669 严重 [C3P0PooledConnectionPoolManager[identityToken->1hgefi99r1yeux661are7zk|12876430]-HelperThread-#0] com.mchange.v2.resourcepool.BasicResourcePool. A RESOURCE POOL IS PERMANENTLY BROKEN! [com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@74bb9e1f] (because a series of 10 acquisition attempts failed.)36 27-Nov-2017 21:58:49.671 严重 [C3P0PooledConnectionPoolManager[identityToken->1hgefi99r1yeux661are7zk|12876430]-HelperThread-#0] com.mchange.v2.resourcepool.BasicResourcePool. com.mchange.v2.resourcepool.BasicResourcePool@7f3d74fe -- Unexpectedly broken!!!37 com.mchange.v2.resourcepool.ResourcePoolException: Unexpected Break Stack Trace!38 at com.mchange.v2.resourcepool.BasicResourcePool.unexpectedBreak(BasicResourcePool.java:974)39 at com.mchange.v2.resourcepool.BasicResourcePool.access$1000(BasicResourcePool.java:44)40 at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1927)41 at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)42 43 27-Nov-2017 21:58:49.678 信息 [http-nio-8080-exec-4] com.mchange.v2.resourcepool.BasicResourcePool. com.mchange.v2.resourcepool.BasicResourcePool@7f3d74fe -- an attempt to checkout a resource was interrupted, because the pool is now closed. [Thread: http-nio-8080-exec-4]

关键在第二行,在jdbc的url后面在加上一个  serverTimezone=UTC 就行了。

 

最后上一下最终修改好的数据源配置代码

jdbc.properties

1 ###### C3P0 MySQL CONFIG ####### 2 jdbc.driverClassName=com.mysql.cj.jdbc.Driver 3 jdbc.url=jdbc:mysql://localhost/localstudent?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC 4 jdbc.username=root 5 jdbc.password=123456 6  7 connection.initialPoolSize=1 8 connection.minPoolSize=1 9 connection.maxPoolSize=510 connection.acquireIncrement=211 connection.acquireRetryAttempts=1012 connection.acquireRetryDelay=100013 connection.maxIdleTime=360014 connection.idleConnectionTestPeriod=2015 connection.maxStatements=016 connection.maxStatementsPerConnection=0

springmvc-servlet.xml

1 
2
3
4
5
6
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

 

转载于:https://www.cnblogs.com/lianxing/p/7906423.html

你可能感兴趣的文章
继承多态
查看>>
第二次作业
查看>>
Btrace 使用小结
查看>>
多线程编程学习笔记——使用并发集合(一)
查看>>
Python 3 简易用户登录系统,输错三次密码锁定账号
查看>>
统计一个数据库中,无记录的表的sql语句
查看>>
【12月21日】A股滚动市盈率PE历史新低排名
查看>>
Alpha阶段第四次Scrum Meeting
查看>>
背包问题的各种求解方法
查看>>
开发人员协会 可能会无法成立
查看>>
python module :shelve
查看>>
OC内存管理
查看>>
学习TensorFlow,TensorBoard可视化网络结构和参数
查看>>
潜谈IT从业人员在传统IT和互联网之间的择业问题(上)-传统乙方形公司
查看>>
axure笔记--变量值在页面之间的传递
查看>>
PHP学习 smarty 的原理
查看>>
node相关--代码共享
查看>>
centos yum安装php5.6.19 remi源按照
查看>>
Loj #124. 除数函数求和
查看>>
前端开发谷歌浏览器跨域命令行(很实用,开发常用)
查看>>