java - 一段时间后Mysql无法连接
问题描述
我正在使用石英作业每 10 分钟获取一次记录。我的作业成功运行了 2 小时。2 小时后我无法连接到 mysql。它说下面的错误
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
2019-11-12 20:30:08 ERROR DbUtils:44 - error during creating mysql connection ,stacktracesun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:423)
com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
com.mysql.jdbc.Util.getInstance(Util.java:408)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861)
com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2095)
com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2020)
com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:768)
com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:423)
com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:385)
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:323)
java.sql.DriverManager.getConnection(DriverManager.java:664)
java.sql.DriverManager.getConnection(DriverManager.java:247)
com.network.assets.airwave.DbUtils.createConnection(DbUtils.java:34)
com.network.assets.airwave.AirWaveService.getDevices(AirWaveService.java:384)
com.network.assets.airwave.AirWaveService.loadDeviceIpListMemory(AirWaveService.java:45)
com.network.assets.core.api.impl.AssetLiveJob.execute(AssetLiveJob.java:158)
org.quartz.core.JobRunShell.run(JobRunShell.java:202)
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
如果我停止应用程序并重新启动,它再次成功运行 1 或 2 小时,我得到同样的异常。
笔记:
我编写了简单的 java 代码来连接到 db 作为另一个应用程序。我成功地运行了它的连接。但它给出了以下警告,
Tue Nov 12 19:16:04 IST 2019 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.
开发环境我无法重现该问题。
任何想法?。
解决方案
推荐阅读
- c++ - SIMD 值的健全哈希?
- typescript - 带有标头的 HttpClientModule http 帖子不起作用
- spring - 在 Spring Boot 中设计可定制的 ERP
- node.js - 尝试发送 formData 时出现“MulterError:意外字段”
- gcc - Xlc '-qnotwolinkis' 编译器选项的 gcc 等效项是什么?
- spring-boot - 无法销毁类型为 [org.camunda.bpm.spring.boot.starter.webapp.filter.LazyProcessEnginesFilter] 的名为 [Engines Filter] 的过滤器
- r - 如何在 wordcloud2 输出中插入水印
- linux - 一个普通的 Linux 发行版中有多少个文件?
- angular - 有没有办法改变我的网络图中节点的形状?
- php - PHP用empty()或truthy检查变量