Intro
우분투에서 H2 Database 를 사용할 일이 생겼습니다. MacBook 에서는 사용하고 있었는데 우분투에 설치하며 리눅스에서는 조금 다른점이 있을지 궁금하기도 했습니다.
결론적으로는 MacOS에 H2 Database를 설치할때와 우분투에 설치할때 그 과정에는 전혀 차이가 없었습니다.
단 한가지 차이가 있는데 맥에서나 우분투에서나 h2.sh
파일이 실행 권한 없이 압축이 풀리는건 같았지만 맥북에서는 그래도 그냥 실행이 되는데 리눅스에서는 실행 권한을 변경 해 줘야 실행이 가능 했습니다.
Installation
Download
설치를 위해 H2 Database 홈페이지에 방문합니다.
가운데에 있는 Download 에서 All platforms 용 zip 파일을 다운 받습니다.
Unzip
원하는 위치에 압축을 풀어 줍니다.
unzip h2-2022-01-17.zip
Execution
압축을 풀었으니 실행 파일을 확인 해 봅니다.
bin/h2.sh
파일을 실행해야 하는데 실행 권한이 없습니다. 권한을 추가해줍니다.
chmod +x h2.sh
실행 권한을 갖고 파일명이 초록색으로 변했습니다. 이제 실행 할 수 있습니다.
./h2.sh
실행을 하면 초기 설정을 할 수 있는 브라우저가 뜹니다.
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를 누르면 해당 파일을 생성 하며 접속이 됩니다.
궁금해서 db 파일이 어디 생성되는지 찾아보니, ~/
경로에 생성되었네요.
그 외에
.h2.server.properties
등의 파일들도 같은 경로에 함께 생성 되었습니다.
이제 좌측 상단의 Disconnect 버튼을 클릭해 연결을 종료합니다.
좌측 상단의 빨간색 버튼 입니다.
이제 파일로 바로 연결하는게 아닌 tcp 연결로 변경 해 줍니다. 단순하게 데이터 베이스를 확인할때는 상관 없지만, 결국 외부 프로그램에서 접속해야 하기 때문에 TCP 접속이 가능해야 합니다. 또한 파일에 직접 접근할 경우에는 lock이 걸리게 됩니다.
jdbc:h2:tcp://localhost/~/jpashop
tcp로 변경 후 에도 Test Connection이 성공합니다.
Connection을 눌러 다시 연결 해 줍니다.
이후에는 마음껏 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"
설정을 변경 한 후에는 설정 파일을 한번 불러와줍니다.
source ~/.zshrc
이제 h2만 입력 해도 h2 데이터베이스가 간단하게 실행 됩니다.
이상으로 글 마치겠습니다. 감사합니다.
'IT ⁄ Computer > Linux' 카테고리의 다른 글
Linux) 리눅스에서 Apple Music 듣기 Cider App (0) | 2022.03.23 |
---|---|
Ubuntu) Airpod 연결 설정 하기 (0) | 2022.03.23 |
Ubuntu) 우분투에서 카카오톡 실행 (100% 정상작동 방법) (2) | 2022.01.29 |
Ubuntu) Display Link 활용한 모니터추가 연결 (0) | 2022.01.28 |
Ubuntu 20.04) 스크린샷 저장 폴더 변경 (0) | 2022.01.25 |