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

댕굴댕구리님의 프로필 이미지
댕굴댕구리

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

h2 org.hibernate.orm.jdbc.bind: trace관련 질문

작성

·

323

0

강의 보았을때 org.hibernate.orm.jdbc.bind: trace을 추가하면

insert 구문을 트레이스에서 볼 수 있었는데 제가 하니까 다른 형태로 나와서 질문 남깁니다.

이것은 왜 그런 것일까요?

혹시모르니 yml파일 내용도 첨부해 봅니다.

spring:
  datasource:
    url: jdbc:h2:~/jpashop
    username: sa
    password:
    driver-class-name: org.h2.Driver

  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
#        show-sql: true
        format_sql: true

logging:
  level:
    org.hibernate.orm.jdbc.bind: trace
    org.hibernate.SQL: debug

답변 2

0

프로젝트 코드 확인해보았습니다. 문제가 발생하는 애플리케이션 실행 코드가 정상 동작합니다.

다음을 확인하여 진행해주세요.

h2는 실행중인 상태에서 테스트해주세요.

h2 버전

h2는 2.2.224를 설치하여 진행.

 

h2 db파일의 위치

윈도우 : C:\USERS\OMG(계정명)\

맥: home\계정명\

 

h2파일 이름(확장자 포함)

jpashop.mv.db

 

jpashop.mv.db 파일 재생성

다음 링크(클릭)의 해결방안2[ 빈 텍스트 파일로 확장자를 변경하는 방법 ]를 참고하여 jpashop.mv.db을 h2 db파일의 위치 경로에 생성

 

h2설정

db 파일의 경로가 서로 상이한 이유를 잘 모르겠습니다. home경로의 경우 일반적으로 Mac OS의 경로명을 따르고 있어서 Mac을 사용중이실 것이라 생각하였는데, c/Users 라고 하신것으로 보아 윈도우를 사용중이신 것 같기도 하네요.

중요한 것은 아래 기본 경로 위치에 db파일이 존재해야 h2가 인식한다는 것입니다.

별도의 h2설정을 변경하신 것인지는 모르겠으나 아래의 기준을 따라주세요.

h2 db파일의 위치

윈도우 : C:\USERS\OMG(계정명)\jpashop.mv.db

맥: home\계정명\jpashop.mv.db

 

그래서 c/Users/dongw 위치에 test.mv.db가 있고

home/dong 에는 jpashop.mv.db가 있는 상황입니다.

해결이 안될 경우 댓글남겨주세요.

0

안녕하세요. 댕굴댕구리님, 공식 서포터즈 OMG입니다.

올리신 내용으로 예상하면, 아래 2번의 내용을 적용한 것으로 보아 강의 메뉴얼을 참고하여 스프링부트3.x대의 자바버전 17이상을 적용하신 것 같습니다.

이 부분에서는 문제 원인을 특정할 수는 없고, 문제의 원인으로 예상되는 부분은 아래의 1번과 같이 url이 tcp localhost가 아닌 물리적인 파일의 경로만 적혀있어서 발생하지 않나 예상합니다.

1번의 url을 적용하여 확인해보시겠어요?

jdbc:h2:tcp://localhost/~/test

image

감사합니다.

강의대로 설정하여 진행하면 아래와같이 에러가 뜹니다.

참고로 h2데이터 베이스는 켜놓은 상태입니다.

먼저 설정파일은 이렇구요

spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/jpashop
    username: sa
    password:
    driver-class-name: org.h2.Driver

  jpa:
    hibernate:
      ddl-auto: create
properties:
      hibernate:
#        show-sql: true
        format_sql: true

logging:
  level:
    org.hibernate.orm.jdbc.bind: trace
    org.hibernate.SQL: debug

에러내용은 아래와 같습니다. 에러 내용전부를 첨부하지 못하여 일부 발췌하여 남깁니다.

org.h2.jdbc.JdbcSQLNonTransientConnectionException: Connection is broken: "java.net.ConnectException: Connection refused: no further information: localhost" [90067-224]

......

Caused by: java.net.ConnectException: Connection refused: no further information

jpashop.mv.db파일위치는 아래와 같습니다.

 /home/dong

 

다음 절차를 진행해주세요

  1. 기존에 생성된 jpashop.mv.db 삭제

    1. 터미널 접속 -> home/dong 경로에서 다음 명령어 입력

      1. rm -rf jpashop.mv.db

  2. h2 삭제

  3. 스프링 프로젝트와 호환되는 h2 버전 확인

    1. image제 화면은 1.4.200 이지만, 2.1.214 혹은 2.2.224 로 되어있을거에요

  4. 확인한 h2버전에 맞게 h2재설치

    1. https://h2database.com/html/download-archive.html

  5. DB파일 재생성

    1. home/dong 경로에서 다음 명령어 입력

      1. touch jpashop.mv.db

  6. 새로 설치한 h2 실행

  7. 접속 확인

    1. url => jdbc:h2:tcp://localhost/~/test

    2. username => sa

    3. password => 공란

    4. image

이 절차대로 진행해주시고, 해결이 안될 경우 직접 실행한 7번의 화면을 캡쳐로 남겨주세요.

재설치 후 ./h2.sh 를 통해 접속 확인 타이밍에서 아래의 유알엘을 넣고 접속을 하려 했더니 아래의 에러가 나왔습니다.

  1. url => jdbc:h2:tcp://localhost/~/test

Database "/home/dong/test" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-224] 90149/90149 (도움말)

답변 댓글을 확인해주세요.

요청 내용에 대한 답변을 남기셔야 확인이 가능합니다.

 

  1.  

    1. image

이 절차대로 진행해주시고, 해결이 안될 경우 직접 실행한 7번의 화면을 캡쳐로 남겨주세요.

실행화면은 다음과 같습니다.imageconnect도 잘 되구요.

단지 프로젝트를 실행시키면 Connection is broken: "java.net.ConnectException: Connection refused: no further information: localhost" [90067-224]

에러가 발생하는 것은 변하지 않았습니다..

(1) jpashop.mv.db 파일이 home/dong에 존재하고

(2) application.yml에 url: jdbc:h2:tcp://localhost/~/jpashop 되어 있고,

(3) h2가 실행중이고, url이 localhost:8082/~?jsession~ 이렇게 잘 되어 있어서 특이사항은 보이지 않습니다.

다만 한가지 짚이는 점은

imageproperties 위치가 실제 위치해야하는 띄어쓰기가 적용되어 있지 않은 것 같아요.

그래서 전반적인 코드 확인도 같이 필요할 것 같습니다.

image

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요


추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명


링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

링크 첨부합니다.

https://drive.google.com/file/d/1XZLZisel5v0UnXx7BoYibunK09-0Pma5/view?usp=sharing

 

1. 문제 영역을 실행할 수 있는 방법

yml파일을 설정 후 ./h2.sh데이터 베이스에 접속하여 아래에 공유해주신 방법으로 디비를 켭니다. 그리고 메인 클래스에서 실행을 하면 문제가 발생합니다.

2. 문제가 어떻게 나타나는지에 대한 상세한 설명

간단히 에러 스크린샷을 첨부하겠습니다.

image

혹시 관련이 있나해서 추가적으로 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술강의에서 h2 설치하여 사용한적이 있습니다.

그래서 c/Users/dongw 위치에 test.mv.db가 있고

home/dong 에는 jpashop.mv.db가 있는 상황입니다.

액세스 권한 요청화면이 출력되네요

image

링크 접근 가능하도록 허용해주세요 😀

image

권한풀었는데 일단 다시 권한 재설정 해보았습니다.

https://drive.google.com/file/d/1XZLZisel5v0UnXx7BoYibunK09-0Pma5/view?usp=drive_link

image

댕굴댕구리님의 프로필 이미지
댕굴댕구리

작성한 질문수

질문하기