JDBC中The server time zone value '???ú±ê×??±??' is ............. 的错误

    在JDBC使用的时候有时候会出现java.sql.SQLException: The server time zone value '???ú±ê×??±??' is unrecognized or represents........的错误,具体错误如下:

 
  1. 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.

  2. Tue May 15 21:38:04 CST 2018 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.

  3. 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.

  4. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127)

  5. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)

  6. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:87)

  7. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:61)

  8. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:71)

  9. at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)

  10.  
  11.  
  12. at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:862)

  13. at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444)

  14. at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230)

  15.  
  16.  
  17. at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226)

  18. at java.sql.DriverManager.getConnection(Unknown Source)

  19. at java.sql.DriverManager.getConnection(Unknown Source)

  20. at zhu.jdbc.unit.UnitMysql.getConnection(UnitMysql.java:34)

  21. at zhu.jdbc.dao.imp.ITb_UserImpI.insertData(ITb_UserImpI.java:55)

  22. at zhu.jdbc.dao.imp.ITb_UserImpI.insertData(ITb_UserImpI.java:1)

  23. at zhu.jdbc.service.imp.ITb_UserServiceImpI.insertData(ITb_UserServiceImpI.java:35)

  24. at zhu.jdbc.service.imp.ITb_UserServiceImpI.insertData(ITb_UserServiceImpI.java:1)

  25. at zhu.jdbc.servlet.Servlet_TbUser.Insert(Servlet_TbUser.java:87)

  26. at zhu.jdbc.servlet.Servlet_TbUser.doPost(Servlet_TbUser.java:41)

  27. at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)

  28. at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

  29. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

  30. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

  31. at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

  32. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

  33. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

  34. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)

  35. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

  36. at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)

  37. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

  38. at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

  39. at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)

  40. at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

  41. at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

  42. at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)

  43. at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

  44. at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)

  45.  
  46.  
  47. at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)

  48. at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

  49. at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

  50. at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

  51. at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

  52. at java.lang.Thread.run(Unknown Source)

  53. Caused by: com.mysql.cj.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.

  54. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

  55. at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

  56. at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

  57. at java.lang.reflect.Constructor.newInstance(Unknown Source)

  58. at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:59)

  59. at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:83)

  60. at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:128)

  61. at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2201)

  62. at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2225)

  63. at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1391)

  64. at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:993)

  65. at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:852)

  66. ... 36 more

  67. 五月 15, 2018 9:38:04 下午 org.apache.catalina.core.StandardWrapperValve invoke

  68. 严重: Servlet.service() for servlet [Servlet_TbUser] in context with path [/myweb2] threw exception

  69. java.lang.NullPointerException

  70. at zhu.jdbc.dao.imp.ITb_UserImpI.insertData(ITb_UserImpI.java:59)

  71. at zhu.jdbc.dao.imp.ITb_UserImpI.insertData(ITb_UserImpI.java:1)

  72. at zhu.jdbc.service.imp.ITb_UserServiceImpI.insertData(ITb_UserServiceImpI.java:35)

  73. at zhu.jdbc.service.imp.ITb_UserServiceImpI.insertData(ITb_UserServiceImpI.java:1)

  74. at zhu.jdbc.servlet.Servlet_TbUser.Insert(Servlet_TbUser.java:87)

  75. at zhu.jdbc.servlet.Servlet_TbUser.doPost(Servlet_TbUser.java:41)

  76. at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)

  77. at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

  78. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

  79. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

  80. at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

  81. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

  82. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

  83. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)

  84. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

  85. at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)

  86. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

  87. at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

  88. at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)

  89. at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

  90. at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

  91. at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)

  92. at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

  93. at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)

  94. at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)

  95. at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

  96. at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

  97. at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

  98. at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

  99.  
  100. at java.lang.Thread.run(Unknown Source)

       出现这个的原因是因为 mysql返回的时间总是有问题,比实际时间要早8小时。

解决办法

public static final  String URL="jdbc:mysql://localhost:3306/jdbc01?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";//链接的mysql

        在jdbc连接的url后面加上serverTimezone=GMT即可解决问题,如果需要使用gmt+8时区,需要写成GMT%2B8

      问题就会解决;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值