인프런 커뮤니티 질문&답변

마이티님의 프로필 이미지

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

38강. profile과 H2 DB

h2 콘솔 접근 불가

24.07.26 15:02 작성

·

86

0

image.png

위의 에러가 나옵니다

image.png

image.png

활성화도 제대로 된거 같은데 h2-console에 jdbc:h2:mem:library;MODE=MYSQL;NON_KEYWORDS=USER를 입력하고 connect버튼을 누르면 에러가 나오고 url은 초기화 됩니다. local로 돌려도 화면상에 mysql연결이 된 거 같이 데이터는 그대로 입니다.

답변 2

0

최태현님의 프로필 이미지
최태현
지식공유자

2024. 07. 26. 16:02

안녕하세요! 마이티님!

 

우선 의심되는 부분은 "local로 돌려도 화면상에 mysql연결이 된 거 같이 데이터는 그대로 입니다." 라는 부분입니다!

 

H2가 동작해야지만 올바른 URL을 이용해 h2-console에 접근할 수 있는데요!

  • jdbc:h2:mem:library 라고 입력해주신게 맞다면 올바른 URL을 잘 써주신 것 같고

  • h2-console로도 접속한게 맞으니

한 가지 의심되는 부분은 H2가 정말 동작하고 있는가 입니다.

 

다음과 같은 순서로 해결해보시면 좋을 것 같습니다!

  1. local profile에서 H2를 쓰고 있는지 MySQL을 쓰고 있는지 제대로 확인해본다.

    1. 제대로 확인하는 방법은 서버를 실행시킨 이후 화면이나 API를 통해 데이터를 넣어보고 MySQL에 데이터가 들어갔는지 확인해볼 수 있습니다.

  2. 만약 MySQL을 쓰고 있다면, local profile에서 MySQL을 쓰고 있는지 확인이 필요합니다.

    1. 예를 들어 application.yml 설정에서 mysql 설정 부분을 무언가 놓쳤다면, 위에 있는 설정을 아래 있는 설정이 덮어쓸 수도 있습니다.

       

       

    만약 MySQL을 쓰고 있다면, local profile에서 정상적으로 H2를 쓰도록 바꿀 경우, 위의 문제가 해결될 것으로 보입니다!

한 번 해보시고 또 안되는 부분 편하게 질문 올려주세요! (application.yml 파일 전체를 첨부해주셔도 좋을 것 같습니다.

감사합니다! 🙏

0

인프런 AI 인턴님의 프로필 이미지

2024. 07. 26. 15:06

안녕하세요, 인프런 AI 인턴입니다.

마이티님의 질문에 대해, H2 데이터베이스에 접근할 때 발생한 에러와 관련된 문제를 파악하시는 데 도움이 될 만한 기존 답변을 찾았습니다. H2 콘솔 접근과 관련된 문제는 일반적으로 Spring Boot 애플리케이션의 application.yml이나 application.properties 설정의 문제일 가능성이 높습니다. 이와 관련하여 비슷한 상황의 질문들과 그 답변들을 참조하면 유용할 것 같습니다.

  1. 계속 복습중이고 새로운 사이트를 만드는 중인데 - 여기서는 application.yml 의 프로파일 설정과 데이터베이스 연결 설정을 다루고 있습니다. 특히, h2 데이터베이스의 접근 경로와 관련된 설정에 대해서 다루고 있으며, 올바르게 설정되지 않으면 예상치 못한 동작이나 접근 문제가 발생할 수 있습니다.

이 질문의 상황에서처럼 jdbc:h2:mem:library;MODE=MYSQL;NON_KEYWORDS=USER URL을 사용하여 H2 콘솔을 접근하려고 할 때 문제가 발생한 경우, 다음의 가능한 원인들을 확인해볼 필요가 있습니다:

  • application.yml의 설정 중 h2.console.path가 올바르게 설정되었는지 확인해 보세요. H2 콘솔 접근 경로가 올바른지 여부가 중요합니다.
  • Spring Security 설정에서 H2 콘솔 경로에 접근이 허용되었는지도 확인할 필요가 있습니다. 만약 Spring Security를 사용 중이라면, /h2-console/** 경로에 대한 접근을 명시적으로 허용해야 할 수도 있습니다.

마이티님의 경우, 에러 메시지와 함께 제공된 로그와 화면상의 설정을 근거로 문제가 되는 부분을 좁혀가는 접근 방식이 필요합니다. 제공된 정보만으로는 정확한 원인을 파악하기 어려울 수 있습니다. 따라서, 구체적인 설정 파일(application.yml), Spring Security 관련 설정, 그리고 프로젝트의 의존성 설정까지 전반적으로 검토할 필요가 있을 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.