Spring boot의 어떤 예제를 따라하면서 생산성과 빠른 테스트를 위해 h2 db를 사용했다.
gradle에는 아래와 같이 추가되었다.
xxxxxxxxxx
runtimeOnly 'com.h2database:h2'
h2 console 접근 에러
- h2 db를 따로 설정하지 않으면 인 메모리 기반으로 db가 생성되어 동작하며, 기본 경로는 mem:testdb라고 명시가 되어있었다.
- 그러나 위 사진처럼 mem:testdb를 찾을 수 없다는 에러가 발생하였다.
h2 db 버전 문제
gradle에는 따로 버전을 명시하지 않았기 때문에, 최신 버전을 사용했다. (2020.07 기준 1.4.2가 최신)
그러나, h2 보안 문제로 testdb를 자동 생성 하지 않도록 1.4.198버전에서 수정되었다.
TCP Server and H2 Console do not allow creation of new databases by default. (릴리즈노트 참고)
해결방법
해결 방법은 2 가지가 있다.
- 1.4.198 이전 버전으로 되돌리는 방법
- 데이터베이스를 생성하는 방법 (최신버전에서 권장하는 방식)
첫번째 방법은 maven이나 gradle에 이전 버전을 명시하면 되고,
두번째 방법은 설정파일에 데이터베이스를 설정하는 것이다.
- 사실 단순히 테스트용으로 개발하는 용도라 굳이 보안에 신경을 쓰지 않아도 되지만, 직접 db를 생성하는 방식으로 해결하려고 한다.
h2 db 설정
간단하게 아래와 같이 url와 계정정보를 설정해주면 된다.
- username과 password를 설정하지 않으면 비밀번호 없이 sa 계정으로 접속 가능하다.
xxxxxxxxxx
spring
h2
console
enabledtrue
datasource
driver-class-name org.h2.Driver
url jdbc h2 mem testdb
#username: sa
#password: 1234
- 설정한 정보로 입력하면 로그인에 성공한다.
반응형
'Java > Spring' 카테고리의 다른 글
[Spring boot] HTTP API 만들기 - Hello World! (0) | 2021.10.07 |
---|
댓글