[에러] 데이터베이스 table doesn't exist

Nam_JU·2022년 4월 11일
0

ErrorLog

목록 보기
12/26

에러배경

로그인 구현중에 회원가입시 입력한 값이 DB에 들어가지 않았다.
Table 'Nstagram.user_community' doesn't exist



에러 해결 과정

테이블이 user테이블이라서 예약자 명(user)로 인해 인식이 안된건 줄 알고 Table 어노테이션과 테이블명을 user_community로 바꿨다.

에러는 여전함

application.yml 설정

나는 데이터베이스를 h2, mysql을 사용했는데 h2는 제대로 작동을 했다.
문제는 RDS에 연결한 mysql에서 문제가 터지는 것이다.

spring:
  config:
    activate:
      on-profile: local
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url:  rds데이터베이스 
    username: id
    password: pw

  jpa:
    hibernate:
      ddl-auto: create
    show-sql: true
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQLDialect


에러 원인

Jpa dialect 설정 오류

Jpa dialect란?

JPA는 어플리케이션이 직접 SQL을 작성하는 것이 아닌 JPA가 직접 SQL 작성하고 실행하는 형태라고 한다. 그런데 DBMS마다 설정이 다르다.

mysql의 application.yml양식

server:
    address: localhost
    port: 8080
spring:
    datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        password: db비번
        url: jdbc:mysql://localhost:3306/DBNAME?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
        username: db아이디
    jpa:
        database: mysql
        database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
        generate-ddl: true
        show-sql: true

나의 경우는 Mysql8을 사용하는데 버전을 명시해주지 않아서 해당 에러가 났다.

사용하는 DB종류의 dialect를 확인하고 버전을 찾아서 같이 제대로 작성을 하도록 하자!


참고자료

https://dololak.tistory.com/465

profile
개발기록

0개의 댓글