Springboot mysql + jpa сбой канала связи - PullRequest
0 голосов
/ 03 марта 2019

Я использую mysql + jpa в Springboot

, когда я отправляю первый запрос на свой сервер, затем я не использовал свой сервер в течение примерно 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 голосов
/ 23 апреля 2019

Наконец-то я нашел проблему.

Я использую внешний IP при подключении к локальной (в той же сети) БД.

В этом причина.

Я думаю, это потому, чтопроблема Wi-Fi роутера.

Вызов внутренней сети с внешним IP-адресом (например, вызов 192.168.0.1 как 211.333.222.2) может вызвать проблему DNS LoobBack.

Таким образом, вам необходимо изменить настройку в системе маршрутизатора, чтобы использовать петлю DNS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...