[Mysql] Exception: Communications link failure

주형(Jureamer)·2022년 7월 6일
0

Google App Script에서 Mysql에 연결해서 사용하는 부분이 있는데

Exception: Communications link failure 오류가 간헐적으로 발생했습니다.

원인을 찾아보니 connection이 중간에 끊긴 것이라고 합니다.

기존 Mysql은 8시간이라는 글들이 있어 다른 문제라 생각하고

autoReconnection과 ValidationQuery 옵션 등 다른 방법을 찾아봤지만 뚜렷한 해결책이 아니었습니다.

그러다,,, 아! 깨달은 게 있습니다.

제가 쓰고 있던 DB는 AWS RDS에 올라간 MySQL이었습니다.

그리고 평소에 서버에선 Single Connection이 아닌 ConnectionPool을 쓰기 때문에 timeout을 매우 짧게 설정을 해놨었습니다.(10초)

아래 명령어를 통해서 확인 가능합니다.

show variables like '%timeout';

짧은 timeout 시간을 30초로 바꾸어줬습니다.

문제가 된 쿼리는 엑셀 정보를 받아오는데만 12~13초 가량이 걸려서 문제가 된 것이었고,

이게 간혹 10초를 넘지 않는 경우가 있어 에러가 간헐적으로 났었습니다.

timeout은 AWSRDS를 사용하는 경우 파라미터 그룹에서 변경을 해줘야 하고

아래 명령어를 통해 진행하거나 영구적인 적용을 위해서는 my.cnf에서 설정해줘야 합니다.

set global interactive_timeout = [설정값];
set global wait_timeout = [설정값];
set session interactive_timeout = [설정값];
set session wait_timeout = [설정값];

참고

profile
작게라도 꾸준히 성장하는게 목표입니다.

0개의 댓글