반응형
H2 데이터베이스는 임베디드 모드와 서버 모드 두 가지 방식으로 실행할 수 있습니다.
처음 사용하다 보면
Database not found, either pre-create it or allow remote database creation ...
와 같은 오류가 뜰 수 있는데,
이는 DB 파일 생성 과정을 거치지 않아서 발생하는 경우가 많습니다.

이번 글에서는 H2 데이터베이스 파일을 생성하고, 서버 모드로 접속하는 과정을 정리해보겠습니다.
1. 데이터베이스 파일 생성 (최초 1회)
먼저 임베디드 모드로 접속해 DB 파일을 생성합니다.

jdbc:h2:~/jpashop
위와 같이 접속하면, H2가 자동으로 DB 파일을 생성합니다.
📌 생성된 파일 확인
- 홈 디렉토리(~) 경로에 jpashop.mv.db 파일이 생깁니다.
- 이 파일이 실제 H2 데이터베이스 파일입니다.

2. 서버 모드로 접속하기
DB 파일이 생성된 이후부터는 서버 모드로 접속할 수 있습니다.
"연결 끊기" 버튼을 클릭하여
1에서 먼저 임베디드 모드에서 접속한 세션을 종료합니다.

이후 새로운 세션을 열고 URL 을 아래와 같이 입력합니다.
jdbc:h2:tcp://localhost/~/jpashop

3. 왜 서버 모드를 사용하는가?
임베디드 모드는 하나의 프로세스에서만 DB 파일을 열 수 있습니다.
따라서 애플리케이션을 실행하면서 동시에 H2 웹 콘솔을 띄우면 충돌이 발생할 수 있습니다.
반면 서버 모드는 DB를 TCP로 띄워두기 때문에,
- 애플리케이션
- H2 웹 콘솔
두 곳에서 동시에 접속이 가능합니다.
정리
- jdbc:h2:~/test → 최초 1회 실행 (DB 파일 생성)
- 홈 디렉토리에 test.mv.db 파일 확인
- jdbc:h2:tcp://localhost/~/test → 이후 서버 모드 접속
- 애플리케이션 + 웹 콘솔 동시 사용 가능
👉 따라서, 처음에는 임베디드 모드로 DB 파일을 생성한 뒤, 서버 모드로 접속하는 것이 안정적입니다.
반응형
'Database > H2 Database' 카테고리의 다른 글
| [H2 Database] H2 데이터베이스 설치 방법 (0) | 2025.04.07 |
|---|---|
| [H2 Database] 스프링 부트와 H2 데이터베이스: 인메모리 RDBMS의 장점과 활용 (0) | 2024.06.07 |