javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.exception.SQLGrammarException: Unable to open JDBC Connection for DDL execution
...(중략)
Caused by: java.sql.SQLSyntaxErrorException: Unknown database
Spring Boot에 MySQL연동을 시도했는데 에러가 발생했습니다.
에러를 쭉 읽어보니 database를 알 수 없다는 즉, 없다는 말 같아서 MySQL로 DB를 생성해 주었습니다.
MySQL Workbrench에 Spring Boot 애플리케이션에서 사용할 DB를 생성합니다.
.yml파일의 url: jdbc:mysql://localhost:3306/데이터베이스이름?useSSL=false&serverTimezone=Asia/Seoul
의 데이터베이스 이름과 같은 이름으로 생성해야 합니다.
spring:
datasource:
url: jdbc:mysql://localhost:3306/데이터베이스이름?useSSL=false&serverTimezone=Asia/Seoul
username: 유저네임
password: 비밀번호
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
database: mysql # 추가
database-platform: org.hibernate.dialect.MySQL8Dialect # 추가
hibernate:
ddl-auto: create # 스키마 자동 생성
show-sql: true # SQL 쿼리 출력
MySQL8Dialect
는 MySQL버전번호Dialect
로 써줍니다.
ddl-auto: create
는 한 번 실행 후 update
로 바꿔줍니다.
바로 위에서 ddl-auto: create
는 한 번 실행 후 update
로 바꿔줍니다. 라고 했지만.... 저는 create
로 실행을 돌리면 바로 몇몇 테이블이 존재하지 않는다는 에러가 발생했습니다.
Caused by : java.sql.SQLSyntaxErrorException : Table 'DB명.테이블명' dosen't exist
그래서 처음부터 ddl-auto: update
로 만들어 주니 해당 에러는 사라졌습니다.
⭐ 더 공부해서 이유 찾아보기!! ⭐