IT Computer/Linux

Linux) H2 Database 설치 및 실행

📝 작성 : 2022.02.23  ⏱ 수정 : 
반응형

Intro

우분투에서 H2 Database 를 사용할 일이 생겼습니다. MacBook 에서는 사용하고 있었는데 우분투에 설치하며 리눅스에서는 조금 다른점이 있을지 궁금하기도 했습니다.

결론적으로는 MacOS에 H2 Database를 설치할때와 우분투에 설치할때 그 과정에는 전혀 차이가 없었습니다.

단 한가지 차이가 있는데 맥에서나 우분투에서나 h2.sh 파일이 실행 권한 없이 압축이 풀리는건 같았지만 맥북에서는 그래도 그냥 실행이 되는데 리눅스에서는 실행 권한을 변경 해 줘야 실행이 가능 했습니다.

Installation

Download

설치를 위해 H2 Database 홈페이지에 방문합니다.

image-20220223151358804

http://www.h2database.com/html/main.html

가운데에 있는 Download 에서 All platforms 용 zip 파일을 다운 받습니다.

Unzip

원하는 위치에 압축을 풀어 줍니다.

unzip h2-2022-01-17.zip

image-20220223151609559

Execution

압축을 풀었으니 실행 파일을 확인 해 봅니다.

image-20220223151945345

bin/h2.sh 파일을 실행해야 하는데 실행 권한이 없습니다. 권한을 추가해줍니다.

chmod +x h2.sh

image-20220223152049751

실행 권한을 갖고 파일명이 초록색으로 변했습니다. 이제 실행 할 수 있습니다.

./h2.sh

image-20220223152118183

실행을 하면 초기 설정을 할 수 있는 브라우저가 뜹니다.

image-20220223152339250

image-20220223152444694

Test Connection을 진행 해 보았는데, 보기와 같은 에러가 뜹니다.

Database "/home/shane/jpashop" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-210] 90149/90149 (Help)

H2 데이터베이스는 인메모리 기반의 데이터베이스지만, 종료하더라도 데이터를 영속하기 위해 파일에 데이터를 저장 해 두는데요, 해당하는 파일이 존재하지 않기 때문에 발생하는 에러 입니다. Test Connection이 아닌 Connect를 누르면 해당 파일을 생성 하며 접속이 됩니다.

image-20220223152951834

궁금해서 db 파일이 어디 생성되는지 찾아보니, ~/ 경로에 생성되었네요.

image-20220223152946567

그 외에 .h2.server.properties 등의 파일들도 같은 경로에 함께 생성 되었습니다.

이제 좌측 상단의 Disconnect 버튼을 클릭해 연결을 종료합니다.

image-20220223153153210

좌측 상단의 빨간색 버튼 입니다.

이제 파일로 바로 연결하는게 아닌 tcp 연결로 변경 해 줍니다. 단순하게 데이터 베이스를 확인할때는 상관 없지만, 결국 외부 프로그램에서 접속해야 하기 때문에 TCP 접속이 가능해야 합니다. 또한 파일에 직접 접근할 경우에는 lock이 걸리게 됩니다.

jdbc:h2:tcp://localhost/~/jpashop

image-20220223153301821

tcp로 변경 후 에도 Test Connection이 성공합니다.

Connection을 눌러 다시 연결 해 줍니다.

image-20220223154107495

이후에는 마음껏 Table도 만들고, 쿼리를 작성해 등록 및 조회도 할 수 있습니다.

Spring Boot에서 DB에 접속하려면 application.yml에 아래와 같이 작성해 주시면 됩니다.

spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/jpashop
    username: sa
    password:
    driver-class-name: org.h2.Driver

Alias

마지막으로, 매번 h2 데이터베이스를 실행하기 위해 특정 폴더를 찾아 오기는 번거로우니 alias를 등록 해 두겠습니다.

본인이 zsh를 사용하신다면 .zshrc 파일을, bash를 사용한다면 ~/.bashrc 에 등록 해 주세요.

vi ~/.zshrc

이후 원하는 위치에 alias 내용을 적어 추가해줍니다.

alias h2="/home/shane/Documents/h2/bin/h2.sh"

image-20220223154611535

설정을 변경 한 후에는 설정 파일을 한번 불러와줍니다.

source ~/.zshrc

image-20220223154746097

이제 h2만 입력 해도 h2 데이터베이스가 간단하게 실행 됩니다.

이상으로 글 마치겠습니다. 감사합니다.

반응형
1 2 3 4 5 6 7 ··· 44