为什么Consul尝试连接到我的数据库?

时间:2016-12-22 15:40:48

标签: java jpa spring-boot consul

我有一个Spring Boot JPA应用程序将自己注册为Consul的微服务:

@SpringBootApplication
@EnableDiscoveryClient
@EnableAutoConfiguration
public class Bootstrapper {

  public static void main(String[] args) {
      SpringApplication.run(Bootstrapper.class, args);
  }
}

我的application.yml看起来像这样:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/butler_test
    username: root
    password: pwd
    driver-class-name: com.mysql.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: create
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
    show-sql: false

spring:
  cloud:
    consul:
      discovery:
        healthCheckPath: /health
        healthCheckInterval: 10s

但是,当Consul联系/health端点时,我的应用程序中会抛出以下SQLException

“主机'172.17.0.1'不允许连接到此MySQL服务器”。

发生了什么,为什么连连接尝试?

1 个答案:

答案 0 :(得分:0)

如果配置了数据源,健康检查端点将默认通过执行SELECT 1来ping数据库,以确保与数据库的连接正常。如果是,则显示状态为“UP”。由于您看到错误,因此您的数据库配置可能不正确。

您可以通过在属性中配置来禁用数据源运行状况检查: management.health.db.enabled=false

如果您要配置支票,请参阅此处:Spring Boot Actuator Health Indicator