ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring Boot 오류] HikariPool-1 - Exception during pool initialization. Could not connect to address Unknown database 'database name'
    카테고리 없음 2024. 6. 11. 10:55
    Spring Boot 프로젝트의 application.yml 파일을 아래와 같이 구성하고, 어플리케이션을 실행시 오류가 발생함

     

    application.yml

    spring:
      profiles:
        active: local # default
        group:
          local:
            - common
          prod:
            - common
    
    ---
    spring:
      config:
        activate:
          on-profile: common
    
    # ...
    
    ---
    spring:
      config:
        activate:
          on-profile: local
      datasource:
        driver-class-name: org.mariadb.jdbc.Driver
        url: jdbc:mariadb://localhost:3307/pharmacy-recommendation
        username: ${SPRING_DATASOURCE_USERNAME}
        password: ${SPRING_DATASOURCE_PASSWORD}
      redis:
        host: localhost
        port: 6379
      jpa:
        hibernate:
          ddl-auto: create # 운영중인 테이블을 drop할 수 있기 때문에 실제 구동 환경에서는 쓰면 안된다
        show-sql: true
    ---
    spring:
      config:
        activate:
          on-profile: prod

     

    오류 메시지

     


    spring.jpa.hibernate.ddl-auto: create 설정은 데이터베이스가 이미 존재할 때 테이블을 생성하거나 초기화하는 역할을 하지만, 데이터베이스 자체를 생성하지 않는다.

    따라서 MariaDB에 데이터베이스를 직접 생성 후, 어플리케이션을 실행하면 잘 동작한다.

     

    MariaDB 데이터베이스 생성

     

    어플리케이션 재실행


    hibernate.ddl-auto

    Entity 설정을 참고하여 애플리케이션 실행시점에 Hibernate에서 자동으로 DDL을 생성하여, 필요한 Database의 Table 설정들을 자동으로 수행해주는 기능
    create 애플리케이션 실행 시점에 기존 테이블을 모두 삭제(DROP) 후, 다시 생성(CREATE)함
    create-drop 애플리케이션 실행 시점에 기존 테이블을 모두 삭제(DROP) 후, 다시 생성 후, 애플리케이션 종료 시점에 테이블 삭제(DROP)
    update 주어진 entity 구조에 따라서 데이터베이스를 변경
    (변경사항 추가가능하고 삭제불가능)
    validate 애플리케이션 실행 시점 entity와 테이블이 정상적으로 매핑되었는지 확인
    none 사용하지 않음
Designed by Tistory.