본문 바로가기
Spring

H2 데이터베이스 설치 및 스프링 연동

by 영기사전 2022. 9. 23.

H2 데이터베이스 설치

개발이나 테스트 용도로 가볍고 편리한 DB

 

h2 데이터베이스는 다음 링크에 들어가서 1.4.200 버전을 설치해보자.

https://www.h2database.com/html/download-archive.html

 

Archive Downloads

 

www.h2database.com

만약 이미 설치하고 실행까지 했다면 다시 설치한 이후에 ~/test.mv.db 파일을 꼭 삭제

 

h2 데이터베이스 버전은 스프링 부트 버전에 맞춘다. 
권한 주기: chmod 755 h2.sh (윈도우 사용자는 x) 
실행: ./h2.sh (윈도우 사용자는 h2.bat) 

데이터베이스 파일 생성 방법 
jdbc:h2:~/test (최초 한번) 
~/test.mv.db 파일 생성 확인
이후부터는 jdbc:h2:tcp://localhost/~/test 이렇게 접속

H2 데이터베이스가 정상 생성되지 않을 때

다음과 같은 오류 메시지가 나오며 H2 데이터베이스가 정상 생성되지 않는 경우가 있다.

Database (디렉토리 경로) not found, either pre-create it or allow remote database creation(not recommended in secure environments)

해결방안은 다음과 같다.

1. H2 데이터베이스를 종료하고, 다시 시작한다.
2. 웹 브라우저가 자동 실행되면 주소창에 IP주소:포트번호로 되어있다.(ex : http://172.16.3.122:8080/...)
3. 다음과 같이 앞 부분 IP주소를 localhost로 변경하고 Enter를 입력한다.(ex : http://localhost:8080/...) 
나머지 부분은 절대
변경하면 안된다. (특히 뒤에 세션 부분이 변경되면 안된다.)
4. 데이터베이스 파일을 생성하면( jdbc:h2:~/test ), 데이터베이스가 정상 생성된다.

build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가

implementation 'org.springframework.boot:spring-boot-starter-jdbc'
runtimeOnly 'com.h2database:h2'

스프링 부트 데이터베이스 연결 설정 추가

resources/application.properties

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

※주의

스프링부트 2.4부터는 spring.datasource.username=sa 를 꼭 추가해주어야 한다. 그렇지 않으면 Wrong user name or password 오류가 발생한다. 참고로 다음과 같이 마지막에 공백이 들어가면 같은 오류가 발생한다. spring.datasource.username=sa <- 공백 주의, 공백은 모두 제거해야 한다.

댓글