SpringBoot에서 Mysql Datasource 세팅하기.
필자는 JPA, Gradle로 진행했다.(Mybatis같은 환경도 아래 세팅으로 사용가능 할 듯)
Gradle.build
dependencies { ... implementation ("mysql:mysql-connector-java") implementation "org.springframework.boot:spring-boot-starter-data-jpa" ... }
JPA 사용시에만 JPA 의존을 추가하자
DatabaseConfig.java
@Slf4j @EnableJpaAuditing @Configuration public class DatabaseConfig { @Bean public PasswordEncoder passwordEncoder() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); //return NoOpPasswordEncoder.getInstance(); } // public DataSource dataSource() { // log.info("dataSource setup..."); // EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); // EmbeddedDatabase db = builder // .setType(EmbeddedDatabaseType.H2) // .build(); // return db; // } @Bean public DataSource dataSource() { log.info("dataSource setup..."); DataSource dataSource = DataSourceBuilder.create() .url("jdbc:mysql://DB_HOST_IP:PORT/DB명?useUnicode=yes&characterEncoding=UTF-8") .username(ID) .password(PASSWORD) .build(); return dataSource; } ... }
기존에 사용하던 embeded datasource를 비활성화하고 datasource 정보를 작성해준다.
url과 username, password은 각자의 환경에 맞게 설정한다.
?useUnicode=yes&characterEncoding=UTF-8 부분은 mysql utf-8설정에 대응하기 위한 설정
The server time zone value xxxx is unrecognized or represents more than one time zone 등과 같은 에러가 나오는 분은 lteawoo.tistory.com/32
Mysql Server Timezone 설정방법
Mysql Server Timezone 설정 방법 필자는 Mysql 5.7로 진행하였다.(5.7 이하의 버전이나 이후의 버전도 레퍼런스 확인 결과 비슷함) 아래의 명령어로 현재 타임존 확인가능 SELECT @@GLOBAL.time_zone, @@SESSION...
lteawoo.tistory.com
위의 글 참고하여 세팅하고 해결하자. 시스템시간을 인식 못하여서 발생하는 것.
위의 세팅까지 마쳤으면 테스트해보면 동작하는 것을 볼 수 있다.
'Spring' 카테고리의 다른 글
Querydsl Tech Talk 정리 (0) | 2021.08.10 |
---|---|
Thymeleaf - 표준 표현식 (0) | 2021.01.27 |
Spring Cloud Gateway - API Gateway 맛보기 (5) | 2020.10.19 |
Spring Security OAuth2 - Authorization endpoint (0) | 2020.10.07 |
Spring Jpa - Query DSL + Gradle 6 설정 (3) | 2020.09.21 |