Spring Boot, MySQL 연동

YuLim·2023년 3월 1일
0

💥 Error

목록 보기
12/14

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에 DB생성

MySQL Workbrench에 Spring Boot 애플리케이션에서 사용할 DB를 생성합니다.
.yml파일의 url: jdbc:mysql://localhost:3306/데이터베이스이름?useSSL=false&serverTimezone=Asia/Seoul의 데이터베이스 이름과 같은 이름으로 생성해야 합니다.

✔ .yml설정

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 쿼리 출력

MySQL8DialectMySQL버전번호Dialect로 써줍니다.
ddl-auto: create는 한 번 실행 후 update로 바꿔줍니다.

✔ table not exist 오류 해결

바로 위에서 ddl-auto: create는 한 번 실행 후 update로 바꿔줍니다. 라고 했지만.... 저는 create로 실행을 돌리면 바로 몇몇 테이블이 존재하지 않는다는 에러가 발생했습니다.
Caused by : java.sql.SQLSyntaxErrorException : Table 'DB명.테이블명' dosen't exist
그래서 처음부터 ddl-auto: update로 만들어 주니 해당 에러는 사라졌습니다.

더 공부해서 이유 찾아보기!!

profile
개인 공부 기록장

0개의 댓글