반응형
MYSQL 버전마다 상이한 에러가 생긴다
1. 10.0 동일 및 미만 버전
?autoReconnect=true
<property name="validationQuery" value="select 1 " />
<property name="testWhileIdle" value="true" />
<property name="timeBetweenEvictionRunsMillis" value="600000" />
위 설정이면 커버가 된다 ( 단, ?autoReconnect=true 는 사용하지 않는게 좋다 아래 방법만 쓰도록 하자)
2. 10.0 초과 버전
1번의 설정들을 해도 안되는 경우가 발생했다 (글쓴이는 10.0 에서 10.3으로 업데이트 후 나타난 현상)
<property name="timeBetweenEvictionRunsMillis" value="600000" />
위 속성을 7200000 에서 600000 으로 수정해보았다. (2시간에서 10분으로 단축)
<property name="minEvictableIdleTimeMillis" value="-1" />
그럼에도 불구하고 에러가 고쳐지지 않아 위의 속성을 추가하여 -1 값을 주었다.
출처 - https://ojava.tistory.com/120
3. 1번, 2번 둘다 안되는 경우
SHOW GLOBAL VARIABLES LIKE 'wait_timeout';
#SET global wait_timeout = 86400;
1번과 2번이 둘다 안되어서 MYSQL 에서 wait_timeout 값을 기존 28800(8시간) 에서 86400(24시간)으로 수정하였다.
꼭 GLOBAL 로 설정할 것 인터렉티브 모드가 수정되어야하기 때문 ! 로컬에서는 일반 변수겠지만
서버에 접근하는 외부는 인터렉티브 모드로 접근한다고 어디서 봤다.. 여하튼 저렇게 설정
며칠 모니터링 결과 >>> 문제없이 잘 된다.
하지만 세션 대기시간을 늘리는 건 좋지 않은 듯하다. 필요하지 않는 이상 최소한으로 잡자. (15 / 30 / 300 / 600 / 1800)
반응형