• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

38강 질문

23.02.12 11:00 작성 조회수 316

1

안녕하세요 강의 잘 듣고 있습니다. 강의를 듣다 질문이 있어서 글 남깁니다!

profiles 설정을 할때 인텔리제이 무료 버전이라 add vm options 를 -Dspring.profiles.active=local 로 설정하면 local로 설정할 수 있다고해서 이런식으로 일단 profiles를 local로 설정했는데 홈페이지 실행 후 접속하니 mysql에서의 정보가 그대로 남아있습니다. local설정을 잘 했는데 h2에 연결이 안되는거 같은데 원인이 무었일까요? 그리고 h2사이트에 접속해 강의 내용대로 connect를 하니 접속이 안됩니다...

답변 1

답변을 작성해보세요.

0

안녕하세요, 오늘내일님!!! 🙏 질문 주셔서 감사드립니다!!

우선 한 가지 확인해야 할게 있는데요! local 설정까지는 잘 되신걸까요?!! 예를 들어,

IntelliJ Community 버전에서 VM 옵션으로 다음과 같이 넣어주면,

image

서버 실행 로그에

image

The following 1 profile is active: "local" 이라고 나오게 됩니다!

여기까지 확인이 되셨다면, local 로 잘 실행이 된거에요!!!!

 

좋습니다~ 그런데~ local 로 실행을 했는데도 MySQL 정보가 나오는거라면 application.yml 을 확인해볼 필요가 있습니다!

image

local 프로파일로 실행이 되었을 때 h2가 잘 설정되었는지, 구분선은 (---) 잘 들어 있는지 등을 확인해야 해요!

현재 MySQL 데이터가 나오는 것과 H2 console이 들어가지 않은 것은 공통된 원인으로써, 서버가 H2를 사용하고 있지 않기 때문입니다.

혹시 몰라 전체 application.yml 내용도 드립니다!! (복붙 해보시는 것도 좋을 것 같아요~~!!)

spring:
  config:
    activate:
      on-profile: local
  datasource:
    url: "jdbc:h2:mem:library;MODE=MYSQL;NON_KEYWORDS=USER"
    username: "sa"
    password: ""
    driver-class-name: org.h2.Driver
  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
        show_sql: true
        format_sql: true
        dialect: org.hibernate.dialect.H2Dialect
  h2:
    console:
      enabled: true
      path: /h2-console
---
spring:
  config:
    activate:
      on-profile: dev
  datasource:
    url: "jdbc:mysql://localhost/library"
    username: "root"
    password: "" # 필요한 비밀번호
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: none
    properties:
      hibernate:
        show_sql: true
        format_sql: true
        dialect: org.hibernate.dialect.MySQL8Dialect

꼭 해결되셨으면 좋겠습니다! 감사합니다!!!! 🙏🙏