반응형
설정 환경: 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의 의미는
- 소유자 권한: 읽기 + 쓰기 + 실행
- 그룹 사용자 권한: 읽기 + 실행
- 기타 사용자 권한: 읽기 + 실행
- 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
'기타' 카테고리의 다른 글
[MacOS M1] 로컬에서 homebrew 사용하여 mysql, mysql workbench 설치, Spring Boot와 연동하기 (0) | 2022.11.21 |
---|
댓글