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은 AWS의 RDS를 사용하는 경우 파라미터 그룹에서 변경을 해줘야 하고
아래 명령어를 통해 진행하거나 영구적인 적용을 위해서는 my.cnf에서 설정해줘야 합니다.
set global interactive_timeout = [설정값];
set global wait_timeout = [설정값];
set session interactive_timeout = [설정값];
set session wait_timeout = [설정값];