본문 바로가기

Programming/Spring framework

[Spring boot+JPA 세팅] H2 Database 다운로드 및 설치(설치라고 쓰고 세팅이라고 읽는다.)

필자는 스프링 부트 개발 환경에서 H2 Database를 사용하고자 합니다.

필자의 개발환경은 IntelliJ와 Spring boot 2.4.5, Gradle을 사용하며, Gradle의 runtime defendency를 확인합니다.

* build.gradle에 H2 Database를 추가하지 않았으면, defendencies에 runtimeOnly 'com.h2database:h2' 를 추가합니다.

 

h2database version : 1.2.400

 

 

gradle에 추가된 h2database  버전을 확인한 후 https://h2database.com 접속합니다.

 

H2 Database Engine (redirect)

H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo

h2database.com

 

 

필자의 경우 Mac을 사용하고 있으므로 All Platforms를 선택하여 다운로드 받았습니다.

적당한 경로에 다운로드하여 압축해제를 합니다.

* Version 1.4.200 (2019-10-14) 이후로 업데이트가 되지 않고 있군요!

(Gradle에서 h2database 버전을 확인하는 과정은 생략해도 됩니다.)

 

 

다운로드 후 Mac의 경우 압축해제한 경로에서 ./h2/bin 디렉터리로 이동합니다.

cd ./h2/bin

 

h2.sh을 실행했을 때 상기처럼 permission denied 오류가 발생하면 아래 명령어를 입력합니다.

* 쉘 실행 명령어 : ./h2.sh

 

 

chmod 명령어로 적당한 권한을 부여합니다.

* 필자는 chmod 775 * 로 권한 부여했습니다.

 

 

 

권한 부여 후 다시 ./h2.sh 으로 실행하면 위와 같이 H2Database 접속 화면이 표시됩니다.

이 때 Saved Settings를 Embedded가 아닌 Server로 선택합니다.

JDBC URL도 jdbc:h2:~/[원하는이름] 으로 입력합니다.

*tcp로 접근하는 방식이 아닌 파일로 접근하여 파일이 생성되게 하기 위함입니다.

 

User Named은 sa이며, Password는 동일하게 sa를 입력하고,

만약 접속이 안되면 아무것도 입력하지 않으면 접속됩니다.

 

 

위에 처럼 접속에 성공하였으면, h2 database 상위 디렉터리로 이동하면 원하는이름.mv.db라는 파일이 생성되어 있습니다. 

 

로그아웃 후 다시 로그인을 할 때는 JDBC URL을 jdbc:h2:tcp://localhost/~/원하는이름(생성했을 때 이름)으로 지정합니다.

접속 방식을 tcp 방식을 사용하므로, 파일방식을 이용할 때 발생하는 lock이 걸리는 문제가 발생되지 않습니다.

 

 

 

H2 Database를 설치? 세팅 완료하였습니다.