Failed to configure a DataSource 에러와 원인과 해결 방법
메시지
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
Action:
Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
Process finished with exit code 0
원인
Failed to configure a DataSource 에러가 발생하는 이유는 Database에 연결할 때 필요한 정보가 없기 때문이다. 주로 스프링 프레임워크를 이용해 프로젝트를 구성하는 초기에 발생하는 문제이다. 간혹 모르고 application.properties 파일이나 application.yml 파일과 같은 설정 파일을 삭제하거나 위치를 옮겼을 때에도 볼 수 있는 현상이다.
해결방법
스프링 프레임워크는 Database 연결 설정 정보뿐만 아니라 프로젝트에 전반에 필요한 환경 설정 값을 기본적으로는 파일로 관리할 수 있다. 대표적인 환경설정 파일로는 application.properties 파일과 application.yml 파일이 있으며, 둘 중 하나만 있으면 스프링 프레임워크의 환경 요소의 값을 설정할 수 있다. application.properties 파일과 application.yml 파일은 동일한 환경 요소 값들을 설정할 수 있지만 선언해서 사용하는 방식이 다르다는 점을 알아두면 된다.
application.properties
spring.datasource.url=jdbc:[Database]://localhost:3306/[Database스키마]
spring.datasource.username=[DB 아이디]
spring.datasource.password=[DB 비밀번호]
spring.datasource.driver-class-name=[JDBC 드라이버]
application.yml
spring:
datasource:
url: jdbc:[Database]://localhost:3306/[Database스키마]
username: [DB 아이디]
password: [DB 비밀번호]
driver-class-name: [JDBC 드라이버]
제시한 설정 파일을 보면 알 수 있듯이 application.properties 파일과 application.yml 파일의 가장 큰 다른 점은 환경 요소 값을 설정할 때 접근하는 문법이 다르다는 것이다. application.properties는 접근하는 환경 요소의 모든 경로를 다 적어야 하지만 application.yml은 들여 쓰기를 통해 같은 level에 있는 요소는 바로 접근이 가능하게 되어 있다.
반응형
'프로그래밍 > 스프링' 카테고리의 다른 글
Spring Boot - 스프링 부트 Whitelabel 에러 처리 방법 (0) | 2021.10.26 |
---|---|
Spring - 실무에서 사용하는 React + SpringBoot 프로젝트 만들기 with Gradle (4) | 2021.09.01 |
Spring boot - vuejs를 사용하는 스프링 부트 프로젝트 만들기 (0) | 2021.08.25 |
Spring - JSP를 사용하는 스프링 부트 (Spring Boot) 프로젝트 만들기 (2) | 2021.07.08 |
Spring error - Port 8080 was already in use (4) | 2021.04.15 |