본문 바로가기
저장소이야기/H2

[mac] H2 Database 설치

by 사랑꾼이야 2022. 1. 24.
반응형

H2 Database는 자바로 작성된 관계형 데이터베이스 입니다. 주로 자바 애플리케이션에 임베드하거나 클라이언트서버 모드에서 구동하여서 사용합니다.

보통은 로컬 테스트 용으로 사용을 주로 하였는데, 최근에 로컬서버에 올려놓고 테스트를 해보려고 방법을 정리하게 되었습니다.

참조

H2 공식 홈페이지

H2 Github

다운로드

H2를 다운로드 하기 위해서는 다음과 같이 진행하시면 됩니다.

  1. 공식 홈페이지 접속

  1. 각 OS 플랫폼에 맞게 다운로드 진행

  1. 설치 또는 압축 해제
  2. 실행

실행

H2 실행은 설치된 폴더로 이동하여 해당 shell 파일을 실행하면 됩니다.

  • H2를 실행하기 위해서는 java가 설치되어 있어야 합니다.
$ ./h2.sh

만약 권한이 필요하다는 메시지가 나오면 다음과 같이 추가하여 줍니다.

$ chmod +x h2.sh

실행이 성공하면 console로 접속할 수 있습니다.

http://localhost:8082

URL 의미

H2는 URL의 따라서 3가지로 나뉘게 됩니다.

  • Embedded

    • 내장형 모드에서 데이터베이스를 사용하는 것입니다. 응용 프로그램이 시작될 때 또는 세션이 시작될 때 연결을 할 수 있습니다.

    • 사용법은 다음과 같습니다.

      jdbc:h2:~/test # 사용자 디렉토리의 'test' 생성 
      jdbc:h2:/data/test # /data 디렉토리의 'test' 생성 
      jdbc:h2:./test # 현재 작업중인 폴더에 'test' 생성
      
  • In-Memory

    • 사용법은 다음과 같습니다.

      jdbc:h2:mem:test # 하나의 프로세스에서 여러 연결 가능, 모든 연결이 닫히면 데이터베이스 제거됨 
      jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 # 하나의 프로세스에서 여러 연결 가능, 모든 연결이 닫히면 데이터베이스 제거되지 않음 
      jdbc:h2:mem: unnamed private; # 하나의 커넥션만 가능
      
  • Server Mode

    • 사용법은 다음과 같습니다.

      jdbc:h2:tcp://localhost/~/test # 사용자 디렉토리의 생성
      jdbc:h2:tcp://localhost//data/test # 경로 지정하여 생성
      jdbc:h2:tcp://localhost/D:/data/test absolute dir # 경로 지정하여 생성 
      Server start:java -cp *.jar org.h2.tools.Server #
      

실습

H2 Conosle 접속하여 데이터베이스를 생성해보도록 하겠습니다.

먼저는 사용하고자 하는 db의 파일을 생성해야 합니다. 다음과 같이 입력하겠습니다.

  • 저장한 설정 : Generic H2 (Server)
  • JDBC URL : jdbc:h2:~/test

서버용으로 사용하면서 테스트를 하기 위해서는 다음과 같이 설정을 진행해야 합니다.

  • 저장한 설정 : Generic H2 (Server)
  • JDBC URL : jdbc:h2:tcp://localhost/~/test

애플리케이션에서 다음과 같이 설정을 해야 합니다. 저는 hibernate 테스트를 위해서 다음과 같이 설정하였습니다.

<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
<property name="javax.persistence.jdbc.user" value="sa"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
  • jdbc ulr을 보시면 jdbc:h2:tcp://localhost/~/test tcp 연결을 통해 Server-Client 연결을 하는 것을 확인할 수 있습니다.
반응형

댓글