본문 바로가기
프로그램 개발/MYSQL

[MYSQL] 연결이 해제되는 이유 / Connection retry

by 코딩히어로 2020. 3. 31.

리눅스에서 프로그램 개발을 하다보면 Mysql 을 연동한 DB를 사용하게 된다.

 

그런데 무슨 이유에서인지 동작이 잘 되던 프로그램이 소켓을 연결하여 데이터를

 

전송하여도 DB에 입력이 되지 않는 증상이 발견 되곤 한다.

 

이것은 프로그램 구조마다 다를수 있겠지만 근본적인 원인은 Mysql 사용하지 

 

않는 대기시간에 의한 끊김이라고 보는것이 맞겠다.

 

Mysql은 기본적으로 대기시간이 설정에 따라 다르겠지만 6시간동안 사용하지 않으면

 

해당 Connection을 해제하는 옵션이 설정되어 있다.

 

그래서 DB에 오랫동안 접근하지 않으면 연결이 끊겨 DB에 데이터가 입력되지 않는

 

증상이 발견되는 것이다.

 

자 그럼 근본적으로 간단하게 해결하는 방법이 무엇이 있을까.?

 

구조적으로 정말 간단하지만 일정 시간단위로 Mysql에 Ping 체크를 해주면 간단하게

 

Connection이 끊길 일은 없다.

 

옵션변경이나 여러가지 방법이 존재하겠지만 아래와 같이 구문을 추가하는 것으로

 

간단하게 해결 해 보자.

 

카운터는 1개당 1초로 설정했으며 100초마다 Mysql쪽에 Ping을 날려 Connection이 끊어짐을 방지한다.

댓글