안녕세계
[H2] H2 데이터베이스 설치 및 실행 본문
[H2] H2 데이터베이스 설치 및 실행
Junhong Kim 2020. 1. 9. 22:32
이번 포스팅에서는 MacOS에서 H2 데이터베이스를 설치하고,
H2 데이터베이스에서 에러 없이 실행하는 방법에 대해 알아보겠습니다! 🧐
H2 데이터베이스는 brew를 통해 쉽게 설치할 수 있습니다. (설치 끝!! 😊)
$ brew install h2
h2 명령어로 데이터베이스를 실행할 수 있습니다.
$ h2
h2 명령어를 실행하면 자동으로 브라우저에 <자신의 IP주소>:8082로 접속됩니다.
로딩만 되고 접속이 안되는 경우 localhost:8082로 접속하면 정상적으로 접속되는 것을 확인할 수 있습니다.
jsessionid 파라미터는 유지해주세요!
여기서 연결 또는 연결 시험 버튼을 누르면 다음과 같은 에러가 발생할 수 있습니다.
Database "~/test" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149 (도움말)
에러를 읽어보면 JDBC URL 위치에 데이터베이스가 존재하지 않아서 발생하는 에러입니다.
실제로 ~/test 위치로 이동해보면 test라는 데이터베이스가 존재하지 않습니다.
그럼 test라는 이름의 데이터베이스를 생성하려면 어떻게 해야할까요? 🤔
우선, Generic H2 (Server)로 설정하고 JDBC URL을 jdbc:h2:~/test로 파일 모드로 설정하여 연결 버튼을 눌러봅시다.
(이때 연결 시험 버튼을 누르면 동일한 에러가 발생하므로 꼭 연결 버튼을 눌러야합니다.)
만약, 다음 에러가 발생한다면 H2 실행 종료 -> db 파일 삭제 -> 컴퓨터 재부팅 후 다시 위 과정을 시도해보시길 바랍니다.
Connection is broken: "java.io.EOFException: localhost" [90067-214] 90067/90067
(DB 파일 생성시 지정 설정을 Server가 아닌 Embedded 모드로 생성 했을 때 발생되는 에러로 추측됩니다 🤔)
[updated 2023-05-06]
지속적으로 동일한 증상이 발생할 경우 H2 종료 후 PC를 재부팅하고 시도해보세요. 대부분 위 에러가 해결 됩니다. H2 데이터베이스 사용하면서 더 이상 고통받지 마세요 🥲
그럼 위에서 test 생성되지 않았던 test 데이터베이스가 생성되었는지 확인해봅시다.
$ cd ~
$ ls
-rw-r--r-- 1 jhk staff 16384 1 9 22:08 test.mv.db
~/test.mv.db 데이터베이스가 생성된 것을 확인하실 수 있습니다.
이때 이 파일을 삭제하면 h2 데이터베이스에 저장된 데이터도 같이 삭제되는 것이므로 주의합니다! 😱
이제 test 데이터베이스에 접속된 것을 확인 했습니다.
다음 접속시에는 JDBC URL을 jdbc:h2:tcp://localhost/~/test로 변경하며 네트워크모드로 접속합니다.
(네트워크 모드로 접속하지 않으면 서버에서 H2에 붙으면 다음 에러와 함께 웹 브라우저에서는 H2 접속이 안됩니다.)
Database may be already in use: "/Users/spring-demo.mv.db". Possible solutions: close all other connection(s); use the server mode [90020-214]
이제 연결 시험 버튼을 눌러보면 시험 성공이라는 메시지를 확인할 수 있습니다.
(H2 데이터베이스에 연결되지 않는 경우 *.mv.db 파일이 생성되지 않아 발생한 문제일 가능성이 높습니다!)
지금까지 H2 데이터베이스를 설치하고 실행하는 방법에 대해 알아보았습니다.
감사합니다! ☺️