Java

[스프링부트]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).

오류 원인은? Reason: Failed to determine a suitable driver class이다. Database에 연결할 때 필요한 정보가 없기 때문이다. application.properties 파일이나 application.yml 파일과 같은 설정 파일의 위치를 옮겨도 이러한 현상이 나타난다.

오류 해결을 위해서는 대표적인 환경설정 파일 2개가 있는데 application.properties 파일과 application.yml 둘 중 하나만 있으면 스프링 프레임워크의 환경 요소의 값을 설정할 수 있는데 application.properties 파일과 application.yml 파일은 동일한 환경 요소 값들을 설정할 수 있지만 선언해서 사용하는 방식이 다르다.

이 두개의 설정파일 중 하나에 데이터베이스 정보를 정의해준다.

application.properties 파일 설정

#spring.datasource.url=jdbc:[Database]://localhost:3306/[Database스키마]
spring.datasource.url=jdbc:mysql://localhost:3306/[DB스키마명]?autoReconnect=true
spring.datasource.username=[DB 아이디]
spring.datasource.password=[DB 비밀번호]
#spring.datasource.driver-class-name=[JDBC 드라이버]
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto = update
application.yml 파일 설정

spring:
  datasource:
    url: jdbc:[Database]://localhost:3306/[Database스키마]
    username: [DB 아이디]
    password: [DB 비밀번호]
    driver-class-name: [JDBC 드라이버]

또 다른 해결방법으로 ,데이터베이스 없이 서버를 시작하고 싶은 경우에는 아래코드와 같이 Application 클래스 파일에 @SpringBootApplication어노테이션에 (exclude = DataSourceAutoConfiguration.class)를 추가해준 후 서버를 시작하면 정상적으로 동작하게 된다.

package test.jpa.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class TestJpaApplication {

	public static void main(String[] args) {
		SpringApplication.run(TestJpaApplication.class, args);
	}

}

[STS]maven build… 오류처리 (cannot nest inside to enable the nesting exclude…) : Boot Dashboard영역 local 프로젝트 나타나게 하는 방법

[reference]

Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured

Leave a Reply

error: Content is protected !!