로그인 구현중에 회원가입시 입력한 값이 DB에 들어가지 않았다.
Table 'Nstagram.user_community' doesn't exist
테이블이 user테이블이라서 예약자 명(user)로 인해 인식이 안된건 줄 알고 Table 어노테이션과 테이블명을 user_community로 바꿨다.
에러는 여전함
나는 데이터베이스를 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는 어플리케이션이 직접 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를 확인하고 버전을 찾아서 같이 제대로 작성을 하도록 하자!