언어·프레임워크/Spring Boot

[Spring Boot][문제해결] org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL⋯

DandyNow 2022. 9. 7. 14:10
728x90
반응형

[그림 1] application.properties 설정 추가 시 발생한 에러

 

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table posts (id bigint not null auto_increment, author varchar(255), content TEXT not null, title varchar(500) not null, primary key (id)) engine=InnoDB" via JDBC Statement

 

"이동욱. (2019). 스프링 부트와 AWS로 혼자 구현하는 웹 서비스. 프리텍"으로 실습 중에 만나게 된 에러이다. 99~100쪽을 실습 중이었고 H2 쿼리 로그를 MySQL 버전으로 출력되게 하기 위해 추가한 설정으로 인해 발생한 에러이다. 아래는 application.properties에 추가한 문제의 설정이다.

pring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

 

이 문제는 MySQL5InnoDBDialect 이 Deprecated 된 것이 원인이다(스프링 부트 2.7.3에서 실습 중이었음). 따라서 위 코드 대신 아래의 코드로 설정하면 된다.

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
spring.jpa.properties.hibernate.dialect.storage_engine=innodb
spring.datasource.hikari.jdbc-url=jdbc:h2:mem://localhost/~/testdb;MODE=MYSQL

 

참고: https://github.com/jojoldu/freelec-springboot2-webservice/issues/67

 

P.100 properties 추가 시 작동 오류 · Issue #67 · jojoldu/freelec-springboot2-webservice

안녕하세요~ 조졸두님 책으로 공부하고 있는 베니라고 합니다! 100 페이지에서 application.properties에 MySQL5InnoDBDialect 추가 시 밑에 이미지와 같이 나오고 있습니다! 그리고 해당 클래스를 보면 /** A D

github.com

 

추가: H2 DB 접속 에러 관련

Database "mem:testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-214] 에러 관련

 

[그림 2] H2 DB 접속 에러

이후 실습 중에 [그림 2]와 같이 H2 DB 접속 에러가 발생했다. JDBC URL 설정이 application.properties와 달랐기 때문이다. 따라서 application.properties에서 해당 설정을 아래와 같이 수정하면 된다.

spring.datasource.hikari.jdbc-url=jdbc:h2:mem:testdb;MODE=MYSQL
728x90
반응형