Programming/Spring Framework

[Spring Boot] MySql 연결 끊김 해결

통통만두 2016. 11. 23. 13:42
반응형

안녕하세요. 삽질하는 프로그래머 통통만두입니다.

Spring Boot + MyBatis + MySQL 로 프로젝트를 진행하고 있습니다. MySQL 에서는 기본적으로 8시간동안 아무런 query가 없으면 자동으로 연결을 끊습니다. 제가 개발한 웹서버도 평일에는 잘 돌다가 주말 지나고 월요일 아침에 접속해보면 항상 아래와 같은 에러가 발생하였습니다. 에러페이지는 아직 구현을 안했습니다 ^^;




그래서 이와 같은 문제를 해결하기 위해서 1시간 또는 주기적으로 DB 서버에 dump query 을 날리는 것으로 스케쥴러, 배치 등 생각을 해봤지만 배보다 배꼽이 더 크고 깔끔하지 않기 때문에 spring boot 의 설정값을 찾아보았습니다. 일단 구글링을 통해서 알아보고 적용해보니 아래와 같은 설정값을 적용하시면 해결이 된다 입니다.


각각의 항목에 대해서는 구글링을 통해서 알아보시면 제가 설명하는 것보다 더 자세히 아실 수가 있을 것이고, 한 가지 중요한 점은 반드시


autoReconnection=true 를 해줘야 한다는 것입니다. 저 property를 빼고 아래의 설정값을 적용하니 제대로 동작을 안하는 것 같더라구요.



application.properties

spring.datasource.connectionProperties=useUnicode=yes;characterEncoding=UTF-8;autoReconnection=true
spring.datasource.initSQL=SELECT 1
spring.datasource.test-on-borrow=true
spring.datasource.test-while-idle=true
spring.datasource.validation-query=SELECT 1
spring.datasource.time-between-eviction-runs-millis=600000


저와 같은 문제로 해결책을 찾고 계시는 분들에게 도움이 되었으면 좋겠습니다.


감사합니다.


반응형