드라이버 클래스 com.mysql.jdbc를 로드하지 못했습니다.드라이버
2개의 프로파일로 Spring Boot 백엔드를 실행하려고 합니다.하나는 메모리 데이터베이스에서 H2를 사용하고 다른 하나는 MySQL을 사용합니다.H2 데이터베이스는 정상적으로 동작하지만 MySQL로 전환하면 정상적으로 동작합니다.
APPLICATION FAILED TO START
***************************
Description:
Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource:
Property: driverclassname
Value: com.mysql.jdbc.Driver;
Origin: "driverClassName" from property source "source"
Reason: Failed to load driver class com.mysql.jdbc.Driver; in either of HikariConfig class loader or Thread context classloader
Action:
Update your application's configuration
.m2, 재 Import, maven clean, compile, install 등 인터넷에서 찾을 수 있는 대부분의 것을 삭제해 봤지만 성공하지 못했습니다.재미있는 것은 MySQL 데이터베이스만의 다른 프로젝트가 있어서 비슷한 문제가 있었지만 mysql-connector-java 의존관계를 추가해서 해결했습니다.지금은 전혀 모르겠어요.
application.properties
spring.profiles.active=@profilename@
#H2 in memory database
domain.datasource.type=H2
domain.datasource.url=jdbc:h2:mem:store;MODE=MYSQL;
domain.datasource.driver-class=org.h2.Driver
domain.datasource.username=sa
domain.datasource.password=
domain.datasource.generate-dll=true
application-local_properties.properties
spring.profiles.active=@profilename@
#MySQL local database
domain.datasource.type=MYSQL
domain.datasource.url=jdbc:mysql://localhost:3600/store;
domain.datasource.driver-class=com.mysql.jdbc.Driver;
domain.datasource.username=store
domain.datasource.password=store
domain.datasource.generate-dll=false
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sk.personal</groupId>
<artifactId>my-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>my-project</name>
<description>My personal project.</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
<profiles>
<profile>
<id>local_h2</id>
<properties>
<profilename>local_h2</profilename>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>local_mysql</id>
<properties>
<profilename>local_mysql</profilename>
<maven.test.skip>true</maven.test.skip>
</properties>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
DatasourceConfig.java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
import javax.sql.DataSource;
@Configuration
public class DatasourceConfig {
@Value("${domain.datasource.url}")
private String url;
@Value("${domain.datasource.username}")
private String username;
@Value("${domain.datasource.password}")
private String password;
@Value("${domain.datasource.type}")
private String type;
@Value("${domain.datasource.driver-class}")
private String driverClass;
@Bean
public DataSource dataSource() {
if (type.equals("MYSQL")) {
return DataSourceBuilder
.create()
.username(username)
.password(password)
.url(url)
.driverClassName(driverClass)
.build();
} else {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
return builder
.setType(EmbeddedDatabaseType.H2)
.build();
}
}
}
내 경우 다음 종속성이 누락되었습니다.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
및 IntelliJ에서 <parent>
해서 볼 수 pom.xml
pom.xml
그 다음에, 다음과 같이 합니다.
.mysql-connector-java
공물입입니니다
정답이 너무 민망하네요.application.properties 드라이버 행에 세미콜론을 붙였습니다.분명히, 그 운전자를 알아보지 못했군요.
Spring Boot 2.2.0 사용 중 문제가 발생하였습니다.릴리스되어 오래된 Mysql DB(5.1.73)에 접속해야 했습니다.이것에 의해, mysql-connector-java 버전 5.1.38로 다운그레이드 할 필요가 있었습니다.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
스프링 부트에서는 새로운 mysql-java-connector가 기대되어 com.mysql.cj.jdbc로 이름이 변경되었습니다.드라이버, spring datasource driver-class-name 설정도 spring boot db 구성에 추가해야 했습니다.
스프링 부트 설정은 다음과 같습니다.
spring:
datasource:
url: 'localhost'
password: password
username: user
driver-class-name: com.mysql.jdbc.Driver
다음과 같이 mysql 및 jdbc 종속성을 추가합니다.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
MYSQL JDBC 드라이버의 버전을 지정하지 않았기 때문에 버전 8.x 를 취득할 가능성이 있습니다.이 버전에서는 드라이버의 이름이 이전 버전과 다릅니다.
com.mysql.cj.jdbc.Driver
내 경우 오류 발생:
Property: driverclassname
Value: com.mysql.cj.jdbc.Driver
Origin: "driverClassName" from property source "source"
이유: 드라이버 클래스 com.mysql.cj.jdbc를 로드하지 못했습니다.HikariConfig 클래스 로더 또는 스레드 컨텍스트클래스로더 중 하나의 드라이버
mysql 의존관계를 추가했습니다.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
드라이버를 업그레이드해 보세요.Coz Mysql 커뮤니티가 com.mysql.jdbc에서 클래스 이름을 업데이트했습니다.드라이버는 com.mysql.cj.jdbc.상세 내용 확인
데이터베이스 드라이버 종속성 범위를 '런타임'으로 변경합니다.
예를 들어 다음과 같습니다.
<dependency>
<groupId>com.{yourDatabaseGroupid}</groupId>
<artifactId>{yourDatabaseArtifactId}</artifactId>
<scope>runtime</scope>
</dependency>
다음을 추가해야 합니다.spring.datasource.driver-class-name=com.mysql.jdbc.Driver
application.properties 파일로 이동합니다.
내 **application.properties : **
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.datasource.url=jdbc:mysql://localhost:3306/db_name?useSSL=false&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root
믿을 수가 없어!인텔리주:빌드->리빌드 프로젝트가 문제를 해결했습니다!
상세한 것에 대하여는, 다음을 참조해 주세요.
이 문제도 mysql 버전 때문에 발생했습니다.pom.xml 의존관계에 mysql 버전만 추가하면 됩니다(내 경우 버전은 8.0.25입니다).
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
실행 전에 반드시 maven dependency를 다시 로드하십시오.
나도 너와 같은 문제가 있었어.저는 h2 데이터베이스 의존성 때문이었어요!이 두 가지가 어떻게 서로 영향을 미칠 수 있을지는 모르겠지만, 내가 한 일은 이 의존성을 없앤 것뿐이고, 이제 잘 작동한다!
모든 설정이 올바르지만, 이 에러는 아직 표시됩니다.
Intelij에서 창의 프로젝트 구조(ctrl + alt + maj + S)로 이동합니다.문제가 생겼는지 봐
이 경우 사이드바의 "Generate source and Update Folders for All projett"에서 clic으로 이동합니다.
이것으로 나의 실수는 해결되었다!
프로젝트 내 jar 경로 지정 필요 -> 속성 -> JPA -> 연결 프로파일 -> JAR 목록
같은 문제가 발생했는데 근본 원인은 [spring.profile.active]이고 수정은 [spring.profiles.active]로 프로파일 복수입니다.그것은 저의 실수입니다.
https://start.spring.io 에 접속해 주세요.[ Dependencies ]> [ Search for Mysql drver ]> [ select it ]> [ explow ]버튼을 클릭합니다.> mysql 커넥터의 최신 버전을 복사하여 application . properties 파일에 추가합니다.
언급URL : https://stackoverflow.com/questions/52804228/failed-to-load-driver-class-com-mysql-jdbc-driver
'it-source' 카테고리의 다른 글
jQuery AJAX를 사용하여 이진 파일 다운로드 (0) | 2023.02.25 |
---|---|
Gradle과 동등한 Maven 프로파일 (0) | 2023.02.25 |
iOS의 NSDictionary에서 JSON 문자열 생성 (0) | 2023.02.25 |
Ajax 요청을 URL에 표시하는 방법 (0) | 2023.02.25 |
리액트 라우터를 사용한 여러 파라미터 (0) | 2023.02.25 |