728x90


사실 H2는 경량DB기 때문에 설정할게 별로 없긴 하다.

그런데 필자의 경우 사용하다보니까 2가지의 설정을 해줘야 했었는데 첫번째는 모드였고 두번째는 포트였다.

포트의 경우 포트 충돌이 날 경우 어떻게 해결할것인가 였다. 물론 8082라는 포트번호가 애매해서 잘 겹치지 않긴한데 사람일 모르니...

그리고 H2에서 인메모리 모드를 사용할 경우이다. 필자는 처음에 인메모리모드가 심지어 없는줄 알았다.

따라서 여기에 대해서 궁금해 할것 같은 사람이 있으므로 이번 포스팅을 하려고 한다.


포트 번호 변경



일단 다운로드를 받으면 일반적으로 설정파일은 홈 디렉터리에 저장된다.

윈도우즈에서 홈디렉터리는 C:\Users\<user-name>이다. 리눅스는 리눅스마다 다르다.

아래 보면 .h2.server.properties에 있는데 이폴더는 윈도우즈에서는 그냥 보이지만 리눅스,맥에서는 숨김폴더이다.

그걸 알고 접근하면 될것이다.



열고나서 9번라인 아래에 webProt가 8082로 되어있다. 이를 수정해주면된다.

한번 8083으로 바꿔보자.



종료했다 다시 열면 8083으로 바뀐것을 알 수 있다.


모드의 변경



jdbc:h2:~/test

일반적으로 사용하면 이 모드는 그냥 일반 모드로 ~/test의 의미는 홈디렉터리에 DB를 만든다는 의미이다.

h2의 경량DB로서의 장점은 DB를 따로 만들지 않고 해당 방법으로 DB를 자동으로 생성, 없다면 만들어서 쓴다.

예를 들어보자.



해당 홈 디렉터리에는 아무것도 없다. 여기서 아래를 보자.



이렇게 test를 db로 사용해서 접속해보자. 그러면 어떻게 될까.



맨 마지막에 새로 db가 생긴것을 알 수 있다.

이 방식으로 사용해도 큰 문제는 없다. 그런데 외부의 서버를 내가 클라이언트로서 접근하려면 어떻게 해야할까?

이 경우 클라이언트 모드로 접속하면된다.



jdbc:h2:tcp://localhost/~/test


이 방식의 경우 내 컴퓨터 내에서라면 어짜피 위랑 차이는 없지만 내 컴퓨터 내가 아니라면 이 방식으로 접근할 수 밖에 없다.

당연하다면 당연하지만.


그러면 마지막 인메모리 모드의 경우 어떻게 접속해야할까? 조금 특이한 방법으로 접근할 수 있다.



jdbc:h2:mem:test


이 방식은 아이디와 비밀번호를 체크하지 않는다. 사실 정확히 말하면 체크할 필요가 없다.

어짜피 메모리에 올리는거니까 남이 접근할 수도 없기도 하고.

이 모드를 사용하면 이제 일반적인 DB와는 달리 in-memory DB로서 사용할 수 있다.




'Database > H2' 카테고리의 다른 글

[H2]사용하기  (0) 2017.10.08
[H2]H2의 설명과 설치하는 법  (0) 2017.10.08

+ Recent posts