Springboot MySQL + JPA通信链接失败

时间:2019-03-03 14:08:15

标签: mysql spring jpa

我在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

1 个答案:

答案 0 :(得分:0)

最后我找到了问题。

连接到本地(在同一网络中)数据库时,我使用外部IP。

那是原因。

我认为这是因为wifi路由器存在问题。

使用外部IP地址呼叫内部网络(例如,呼叫192.168.0.1为211.333.222.2)可能会导致DNS LoobBack问题。

因此,您需要在路由器系统上更改设置以利用DNS环回。