기존 Spring JPA를 설정하는 방법 중에 다양한 방법이 있는데 기존 AWS 로 연동을 한다면 어떻게 할지 간단하게 설명하도록 하겠다.
- AWS RDS에서 데이터베이스 생성을 누른 후 빠르게 생성하기로 설정한다음 MariaDB 생성하기
- 근데 여기서 생성한 다음 퍼블릭 엑세스를 "아니오" -> "예"로 수정해줘야 접근이 가능하다.
기본 세팅
Spring gradle에 의존성 추가하기
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' // MariaDB
implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.4.0'
application.yml 설정하기
spring:
datasource:
url: jdbc:mariadb://엔드포인트:포트/db이름
username: db계정
password: db계정 비밀번호
driver-class-name: org.mariadb.jdbc.Driver
jpa:
hibernate:
ddl-auto: none
주의할 점
오류 1 : 데이터베이스가 존재하지 않습니다.
- 이 경우 AWS RDS를 생성하면 Name이 database-1의 형식으로 될때가 많은데 이 때 db이름을 언더바로 url 설정해주면 된다.
- application.properties나 application.yml이 제대로 설정되었는지 확인해야 한다.
오류 3 : Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: org.mariadb.jdbc.Driver
- 이 때는 gradle이나 maven 설정이 잘 되었는지 확인하는 것이 중요하다.
- 나 같은 경우 gradle에 implementation으로 해야하는데 compile로 되어있어 오류가 발생했다.
오류 4 : dataSourceScriptDatabaseInitializer' defined in class path resource
- 메인 함수 위에 아래의 Annotation을 달아놓으면 된다.
- 근데 실제 Rest API를 생성하고 DB 연결을 하려면 이 문구는 삭제해야 한다.
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})