我在Springboot上使用mysql + jpa
当我向服务器发送第一个查询时,大约20秒钟没有使用服务器。最后我的服务器抛出mysql通讯关闭错误,然后,我无法连接到我的服务器。
我使用本机应用程序访问服务器。
这是我的错误。
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 19,879 milliseconds ago. The last packet sent successfully to the server was 19,879 milliseconds ago.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_201]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_201]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_201]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_201]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) ~[mysql-connector-java-5.1.13.jar:na]
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1118) ~[mysql-connector-java-5.1.13.jar:na]
这是我的application.yml文件
spring:
datasource:
url: jdbc:mysql://connecturl/dbname?useSSL=false&serverTimezone=UTC&autoReconnect=true
username: root
password: ******
driver-class-name: com.mysql.jdbc.Driver
tomcat:
test-while-idle: true
time-between-eviction-runs-millis: 15000
validation-query: SELECT 1
hikari:
connection-timeout: 10000000
jpa:
hibernate:
ddl-auto: update
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
generate-ddl: false
show-sql: true
database: mysql
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
properties.hibernate.enable_lazy_load_no_trans: true
我发现mysql失去一些连接错误。但是,如果在8小时内没有连接到数据库,则会发生所有这些错误。
* ps我的sql db的超时设置为28800
答案 0 :(得分:0)
最后我找到了问题。
连接到本地(在同一网络中)数据库时,我使用外部IP。
那是原因。
我认为这是因为wifi路由器存在问题。
使用外部IP地址呼叫内部网络(例如,呼叫192.168.0.1为211.333.222.2)可能会导致DNS LoobBack问题。
因此,您需要在路由器系统上更改设置以利用DNS环回。