본문 바로가기
Web Development/H2

[H2 / Error] Database not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149

by 감자맹고우 2021. 12. 15.
728x90
반응형

오늘 나를 애먹게 한 이 녀석...

 

실습을 위해 H2 데이터베이스를 사용하는 도중, 새로운 Database를 만들려고 하니 문제가 발생하였다.

 

발생 원인은 H2 데이터베이스의 1.4.198 버전부터는 보안 이슈로 데이터베이스를 자동으로 생성해주지 않기 때문에 해당 데이터베이스가 없기 때문이라고 한다.

 

 

 

[ 일단 기본적인 해결 방법은 다음과 같다 ]

 

1. H2 콘솔에서 Generic H2(Server)로 접속하기 전 Generic H2(Embedded)로 데이터베이스를 입력 후 연결버튼을 클릭하여 데이터베이스를 생성해준다.

생성 이후에는 연결 끊기 버튼을 클릭 후, 다시 Generic H2(Server)를 선택하여 tcp://localhost/~/dbname(자동입력됨)으로 연결하면 된다.

여기서 JDBC URL:의 [ dbname ] 위치에 원하는 DB명을 입력해준다. 기본값은 test

 

2. 해결되지 않으면 주소창에 숫자로 된 IP주소가 아닌 localhost가 입력되어 있는지 확인해본다. 입력되지 않았으면 localhost로 변경하여 이동해본다.

이런 주소가 되어야 한다. jsessionid 뒤에는 세션키가 출력된다

 

 

3. localhost로 변경 후 다시 연결

 

 

이 과정에서 잘 안될 시 H2 콘솔 브라우저 + CMD창까지 모두 종료 후 다시 H2를 켜서 실행하는 식으로 해결

 

 

=========================================================================

 

 

이후는 앞의 과정이 모두 되지 않을 때를 위한 내용이다.

 

 

1. 우측 하단, 트레이에 H2 Database Engine을 우클릭 해서 Create New Database를 해서 생성(직접 해보진 않음)

 

 

2. 1.3.XX 버전으로 다운그레이드하여 자동생성 기능을 이용

https://code.google.com/archive/p/h2database/downloads

H2database의 이전 버전을 받을 수 있는 Google Code Archive 페이지로 이동하여 다운로드 후 사용

 

🤞 도움이 되셨기를 바랍니다. 한 번의 클릭과 댓글은 어딘가의 누군가에게 진실로 큰 힘이 됩니다. 🐱‍🏍

 

728x90
반응형

댓글