mysql - springboot mysql + jpa 通信链接失败

标签 mysql spring jpa

我在Springboot中使用mysql + jpa

当我向我的服务器发送第一个查询时,我有大约 20 秒没有使用我的服务器。最后我的服务器抛出 mysql communication closed 错误,我无法连接到我的服务器。

我使用 react-native 应用程序访问服务器。

这是我的错误..

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 数据库的超时设置是 28800

最佳答案

终于找到问题了

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

就是这个原因。

我想是因为wifi路由器的问题。

使用外部 IP 地址调用内部网络(例如将 192.168.0.1 调用为 211.333.222.2)会导致 DNS LoobBack 问题。

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

关于mysql - springboot mysql + jpa 通信链接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54969663/

相关文章:

JOIN 和 IN 之间的 MySQL 性能差异

mysql - 我的 mysql.general_log 表变得太大了吗?

php - 从 php 插入时如何向记录添加文本?

java - Hibernate 中的 session 管理(全局临时表)

javascript - 如何使用ajax从jsp中检索 Controller 返回的值

java - JPA Criteria Query - 如何在两个表上实现联接以在单个查询中获得所需的结果

mysql - 如何在另一个表中使用搜索时使用 MySQL 更新表

java - 如何在 Spring Boot 中跟踪唯一的 Web 请求?

java - Hibernate和Spring数据jpa同时使用?

java - 使用 jpa 和 hibernate 的 Spring Security