인프런 커뮤니티 질문&답변

김현식님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

엔티티 클래스 개발2

H2 url을 찾을 수 없다고합니다.

작성

·

345

0

Caused by: java.lang.RuntimeException: Driver com.mysql.cj.jdbc.Driver claims to not accept jdbcUrl, jdbc:h2:tcp://localhost/~/jpashop

라고 에러메세지가 뜹니다.

apllication.yml대신 properties에

spring.datasource.url=jdbc:h2:tcp://localhost/~/jpashop
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driverClassName=org.h2.Driver
jpa.hibernate.ddl-auto=create
jpa.properties.hibernate.format_sql=true

logging.level.org.hibernate.SQL=debug
logging.level.org.hibernate.type=trace

 

이렇게 작성했는데 왜 안되는걸까요??

답변 2

0

안녕하세요. 김현식님, 공식 서포터즈 y2gcoder입니다.

build.gradle 의존성에 MySQL 드라이버도 추가해주신 것 같습니다! 기존의 Mysql 드라이버를 제거하시고 H2 DB 드라이버만 추가한 상태로 다시 시도해보시겠습니까?

runtimeOnly 'com.h2database:h2'

그리고 아래의 설정값들도 다음과 같이 바꿔주십쇼!

# 앞에 spring 을 추가해주십쇼!
spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.format_sql=true

#이하는 그대로 두셔도 됩니다.
logging.level.org.hibernate.SQL=debug
logging.level.org.hibernate.type=trace

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

김현식님께서 겪고 계신 문제는 “H2 데이터베이스 연결 문제”와 관련이 있어 보입니다. 에러 메시지는 “Driver com.mysql.cj.jdbc.Driver claims to not accept jdbcUrl”인데, 이는 MySQL 드라이버가 H2 데이터베이스의 URL을 인식하지 못하고 있다는 의미입니다. 설정 파일에서 H2 데이터베이스를 사용하려고 하시면서, 어딘가에서 MySQL 드라이버를 참조하고 있다는 신호일 수 있습니다. 가장 일반적인 원인은 프로젝트의 의존성 구성이나 설정 파일(application.yml 또는 application.properties)에서 발생합니다.

이 문제 해결을 위한 몇 가지 해결방안은 다음과 같습니다:

  1. 의존성 확인: 프로젝트에 mysql-connector-java 라이브러리 의존성이 포함되어 있다면, H2 데이터베이스를 사용하기 위해 해당 의존성을 제거하거나 주석 처리해야 합니다.

  2. 환경 설정 파일 확인: application.properties 또는 application.yml 파일에서 올바른 데이터베이스 드라이버와 URL을 사용하고 있는지 다시 확인해 보세요. MySQL 드라이버 대신 org.h2.Driver를 사용해야 합니다.

  3. H2 데이터베이스 설정: H2 데이터베이스 접속 URL이 올바른지 확인해 보세요. 보통 jdbc:h2:tcp://localhost/~/test 와 같은 형식을 사용합니다. 여기서 ~/test는 데이터베이스 파일의 위치를 나타내며, 필요에 따라 변경 가능합니다.

  4. H2 Console 활용: 개발 중 H2 데이터베이스에 접근하기 위해 Spring Boot의 H2 Console을 활성화할 수 있습니다. application.properties 파일에 spring.h2.console.enabled=true 설정을 추가해서, 브라우저를 통해 H2 데이터베이스를 쉽게 관리하고 디버깅할 수 있도록 합니다.

질문하신 문제에 대한 구체적인 해결 사례는 아래 링크에서 찾아보실 수 있습니다. 해당 링크는 H2 데이터베이스 접속 문제를 해결한 경험을 공유하고 있으며, 유사한 문제 해결에 도움이 될 수 있습니다.

  • h2 db 연결 후 spring boot 에러
  • 문제 해결 과정에서 사용자 이름과 비밀번호가 올바르게 설정되지 않아 발생한 문제였다는 점에서 참고가 될 수 있으며, 설정 파일에서 spring.datasource.usernamespring.datasource.password 값들을 추가하여 해결하였습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.