728x90
반응형
🚨 문제 발생
- 스프링부트에서 엔티티들을 생성하고 H2에서 테스트하다가 MySQL과 연결해보려는데 아래와 같은 에러가 발생
- 원인
- Spring Data JPA는 기본적으로 Hibernate라는 JPA 구현체를 사용하고, Hibernate에는 내부적으로 지정되는 DB에 맞게 SQL을 생성해주는 Dialect가 존재한다.
- 나의 경우 MySQL에 맞는 Dialect를 설정해주지 않았기에 해당 오류가 발생한 것으로 보인다.
2023-04-03 01:29:00.135 ERROR 1 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : Unknown table 'SEQUENCES' in information_schema
2023-04-03 01:29:00.295 ERROR 1 --- [ main] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.exception.SQLGrammarException: Unable to build DatabaseInformation
💡 문제 해결
application.properties
에서 아래의 코드 추가
dialect
를MySQL5InnoDBDialect
로 설정- MySQL의 경우 데이터베이스 엔진을 MyISAM과 InnoDB로 구분한다.
- MyISAM의 경우 데이터 불결성을 제대로 체크하지 않기 때문에 최근에는 기본적으로 InnoDB를 권장한다.
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
📌 참고
728x90
반응형
댓글