develop/etc

[wsl2] h2 실행하기

아르르르를를르 2021. 9. 25. 03:57

실습용 database를 설치해야 한다.

mysql보다도 가볍고, GUI를 사용할 수 있어 쉬운 h2를 설치하였다.

다운로드: https://www.h2database.com/html/download.html

 

다운받아 압축 풀고 ~/h2/bin 경로에서 ./h2.sh를 실행해주면 끝난다.

 

문제점

그러나 다들 알다시피 나는 windows10에서 wsl2 환경에서 개발하고 있다.

h2는 browser기반이므로 다음과 같은 에러가 발생한다.

ubuntu@ubuntu:~/workspace/h2/bin$ ./h2.sh
Failed to start a browser to open the URL http://127.0.1.1:8082?key=ebb7ac9b1b390f9763da7e589ba8c233acfd8a1f6a3f513ff4f623077c0a5814: Browser detection failed, and java property 'h2.browser' and environment variable BROWSER are not set to a browser executable.

 

 

해결방법

에러 메세지에서 친절하게 java property 'h2.browser' and environment variable BROWSER 가 문제라고 나온다.

step 1)

h2.sh 를 열어 -Dh2.browser 옵션을 추가한다.

#!/bin/sh
dir=$(dirname "$0")
java -Dh2.browser=/mnt/c/Program\ Files/Google/Chrome/Application/chrome.exe -cp "$dir/h2-1.4.199.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Console "$@"

 

step 2)

~/.bashrc 를 열어 BROWSER 경로를 재정의한다.

alias BROWSER="/mnt/c/Program\ Files/Google/Chrome/Application/chrome.exe"

파일 변경 후 source ~/.bashrc 를 잊지말자.

여기서 또 뭔가 안된다면 [wsl2] source .bashrc 에러을 참고하도록 한다. 

 

step 3)

url path를 변경한다.

이건 더 간단한 방법이 있을 것이지만 일단 해결방법이니 공유하려 한다.

이제 다시 ./h2.sh 를 하면 브라우저가 띄워질 것이다.

그런데 127.0.1.1로 접속을 못한다. wsl2환경에서 ifconfig를 해보면 아마 eth0의 inet에 매핑된 것이 원인으로 보인다.

살포시 url ip를 localhost로 변경한다.

eth0의 inet ip로 변경해도 되는데 그럼 ./h2.sh -webAllowOthers 로 옵션을 추가해야하므로 귀찮다.

 

결과

이제 잘 접속된다.