-
H2 데이버베이스를 사용하며 생긴 오류들 정리나만의 에러로그 2024. 10. 29. 23:20
프로젝트 진행중에 테스트를 위해 mysql같은 db를 쓰는건 너무 많은 시간이 걸릴 뿐더러 실제 서비스 작동시 더미 데이터들이 혼용될 가능성이 있습니다.
그래서 H2 데이터베이스를 쓰기로 마음을 먹었는데... 이 놈 참 여러모로 연결하기가 까다롭습니다.
제가 h2 데이터베이스를 사용하며 마주한 이슈들에 대해 정리해서 도움이 됐으면 합니다.
일단 제가 설치한 h2의 버전은 아래 링크와 같습니다.
https://h2database.com/h2-2019-03-13.zip
최신 버전보다 낮은 버전을 설치한 이유는 제가 h2를 연결하면서 수없이 만난 연결 에러들 때문입니다.
만약 h2 db 연결시 아래와 같은 에러가 나온다면,
여기 글을 한번 참고해보셨으면 좋겠습니다.
설치 방법은 위의 링크를 타고 알집을 푸신 다음, h2/bin폴더의 h2.bat을 통해 h2를 실행 시키면 됩니다.
실행시킨후 꼭 체크해주셔야할 것은,
1. test.mv.db파일의 위치
2. application.properties나 application.yaml 파일 설정
3. h2 데이터베이스 접속
입니다.
1. test.mv.db파일의 위치
위의 버전의 h2를 설치해서 실행했다면, test.mv.db는 bin 폴더에 설치되어있을겁니다.
최신버전은 C:\Users\{사용자pc이름}에 test.mv.db가 위치해있을 수 있습니다. 이럴 경우 중요하지 않은 데이터라면 삭제하는게 좋습니다.
2. application.properties나 application.yaml 파일설정
제 yaml파일 설정은 아래와 같습니다.
spring: data: datasource: url: jdbc:h2:mem:testdb driver-class-name: org.h2.Driver username: sa password: 123456
url을 변경할 경우 이상하게도 에러가 나오더군요.
3. test.mv.db파일의 위치
설치된 test.mv.db를 파일 탐색기 주소창을 클릭하면 주소를 복사할 수 있습니다. 이를 복사한후,
데이터베이스 칸에 붙여넣어줍시다.
만약 h2 db생성시 id와 password를 설정했다면 여기에 같이 적어줍니다.
제 yaml파일을 기준으로 본다면 id는 sa, password는 123456이 되겠군요.
본격적인 연결 에러들에 대해 확인하고 대체 방법을 적어보겠습니다.
제가 제일 먼저 맞닥뜨린 에러입니다.
이 에러는 yaml파일 설정시 발생하는 것 같습니다.
제가 에러를 해결했을때는 url: jdbc:h2:mem:testdb로 바꿨을 때였습니다. 이유를 알게 된다면 업데이트 하겠습니다.
2. [90146][90146] Database "C:/Users/user/Downloads/h2/bin/test" not found, and IFEXISTS=true, so we cant auto-create it [90146-220]
이런 에러는 데이터베이스 주소 위치를 잘못 적은 경우 발생합니다.
이 밖에 여러 에러를 마주했는데 생각나는 것은 여기까지 입니다. 만약 더 많은 에러를 마주한다면 업데이트하도록 하겠습니다. 감사합니다.
'나만의 에러로그' 카테고리의 다른 글
Spring Boot 실행시 Failed to configure a DataSource 에러 (1) 2023.12.05 createdAt 과 modifiedAt 값이 null로 db에 저장되는 에러 (1) 2023.12.05