개발
home
🎇

H2 서버 모드로 실행하기

2021-08-21 @이영훈 lastUpdatedAt: 2022-10-10
로컬에서 테스트를 위해서 in-memory DB를 많이 사용합니다 가장 대표적으로 H2가 있습니다
H2를 메모리 모드, 서버 모드 두가지로 실행할 수 있습니다. 메모리 모드로 띄우면 애플리케이션(스프링 등)이 종료되는 순간 메모리도 함께 내려가 데이터가 삭제됩니다. 서버 모드로 실행하게 되면 내용이 파일시스템으로 저장돼 서버를 재시작했을 때 내용이 저장되어 있어 편리하게 개발할 수 있습니다
h2 1.4.200 버전에서는 Embedded 모드로 connect시 보안상의 이유로 데이터베이스가 생성되지 않습니다. 최신버전 2.1.214 (2022-06-13)으로 업그레이드 (추천)하거나 1.3.176 버전으로 다운그레이드 하면됩니다.
1.
h2를 다운로드 받습니다
2.
h2를 다운로드 받은 경로로 이동하고 압축을 풀고 실행합니다
저는 home directory에 압축을 풀었습니다
chmod +x ./h2/bin/h2.sh 로 실행 권한을 설정합니다
./h2/bin/h2.sh 로 실행합니다
3.
메모리 모드로 먼저 실행합니다
URL을 jdbc:h2:path/name 으로 적습니다
pathname 은 원하시는 것으로 변경하시면 됩니다
저는 paht를 home(~)으로 name을 lee-do로 하였습니다
3.
lee-do.mv.db가 생긴것을 확인할 수 있습니다
4.
서버 모드 (tcp 모드)로 접근합니다
URL을 jdbc:h2:tcp://localhost/path/name 으로 적습니다
path name 은 위에 적었던 것과 동일하게 적습니다
저는 path가 home이고 name이 lee-do였으므로
jdbc:h2:tcp://localhost/~/lee-do 로 접근했습니다
5.
정상적으로 접근한 화면입니다
6.
Spring에서 datasource를 h2로 설정합니다
h2 driver로 설정하시고
username은 sa
password는 비워두시면 됩니다
마지막으로 url은 서버 모드(tcp 모드)로 접근했던 url을 적어주시면 됩니다
spring: datasource: driver-class-name: org.h2.Driver username: sa password: url: jdbc:h2:tcp://localhost/~/lee-do
YAML
복사
h2를 종료하시면 접근이 안되니 h2 데이터베이스는 종료하지 말아주세요