본문 바로가기
기타

맥에서 스프링 부트와 h2 연결하기

by 똧이 2022. 10. 19.
반응형

설정 환경: Kotlin, Gradle, Spring Boot 2.7.4, java 11, MacOS


1. h2 database dependencies 설정

dependencies {
    runtimeOnly("com.h2database:h2")
    testImplementation("com.h2database:h2:1.4.200")
}

2. application.properties 혹은 application.yml에 h2 관련 설정

spring:
  h2:
    console:
      enabled: true
  datasource:
    url: jdbc:h2:tcp://localhost/~/study
    username: sa
    password:
    driver-class-name: org.h2.Driver
  • url에서 study는 다른 걸로 대체해도 된다(h2 기본 설정은 test)

3. h2 database 설치

http://www.h2database.com/html/download-archive.html
나의 경우에는 1.4.200 으로 설치했다. h2 최신버전과 스프링부트에서 h2를 지원하는 버전이 다르기 때문에 안정적으로 1.4.200으로 설치


4. h2 실행

설치한 h2가 있는 폴더로 들어가서 터미널을 연다

chaewon@gimchaewon-ui-MacBookAir-2 h2 % cd bin
chaewon@gimchaewon-ui-MacBookAir-2 bin % ./h2.sh
zsh: permission denied: ./h2.sh

맥에서는 h2.sh 파일을 실행함으로써 h2 데이터베이스를 실행할 수 있는데 실행 과정에서 permission denied라는 에러가 떴다

permission denied 해결 방법: chmod 755 h2.sh

chaewon@gimchaewon-ui-MacBookAir-2 bin % chmod 755 h2.sh
chaewon@gimchaewon-ui-MacBookAir-2 bin % ./h2.sh
  • chmod 755의 의미

    1. 읽기 Reading - 4
    2. 쓰기 Writing - 2
    3. 실행 Executing - 1
    처음 - 소유자 권한
    두번째 - 그룹 사용자 권한
    세번째 - 기타 사용자 권한
    • 755의 의미는
      • 소유자 권한: 읽기 + 쓰기 + 실행
      • 그룹 사용자 권한: 읽기 + 실행
      • 기타 사용자 권한: 읽기 + 실행

5. h2를 실행하면

  • 이런 창이 뜬다.

  • 여기서 url를 jdbc:h2:tcp://localhost/~/study(application.yml에 설정한 url)로 하면 에러가 뜨면서 실행이 되지 않는다(db파일 생성을 위한 권한이 부족해서 그렇다고 함)

  • 그렇기 때문에 우선 설정을 url을 jdbc:h2:~/study로 설정하고 연결 클릭하면

  • h2가 실행된다.

  • db 파일도 생성되었다.



이제 앞으로는

  • url를 jdbc:h2:tcp://localhost/~/study로 설정하고 연결을 눌러도

  • 실행이 잘 된다!




embedded와 server 설정의 차이점?

  • embedded

    • h2를 애플리케이션과 동일한 JVM에서 실행
    • 애플리케이션 종료 시 데이터 휘발
    • 데이터에 바로 접근 가능해 속도가 빠름
  • server:

    • 애플리케이션과는 다른 JVM에서 실행(localhost:9092)
    • 애플리케이션 종료 시에도 데이터 유지
    • 여러 애플리케이션을 해당 데이터베이스에 동시적으로 연결 가능
    • TCP/IP 통신하여 embedded에 비해 속도가 느림










출처

https://webisfree.com/2015-01-02/리눅스-유닉스-파일-권한-설정-알아보기-777-755
https://atoz-develop.tistory.com/entry/H2-Database-설치-서버-실행-접속-방법
https://jamie95.tistory.com/188
http://www.h2database.com/html/features.html?highlight=embedded&search=embedded#firstFound

728x90

댓글