Amazon RDS MySQL DB 인스턴스에 연결할 때 "MySQL server has gone away" 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 12월 20일

MySQL을 실행하는 Amazon Relational Database Service(Amazon RDS) DB 인스턴스를 쿼리하려고 했는데 "MySQL server has gone away" 또는 "Lost connection to server during query"라는 오류 메시지 중 하나가 수신되었습니다.

간략한 설명

서버 시간이 초과되어 연결을 종료한 경우 다음 오류 중 하나가 표시될 수 있습니다.

  • CR_SERVER_GONE_ERROR – 클라이언트가 서버에 질문을 보낼 수 없습니다.
  • CR_SERVER_LOST – 클라이언트에서 서버에 쓸 때 오류가 발생하지 않았지만 클라이언트가 질문에 대한 전체 답변(또는 답변)을 받지 못했습니다.

자세한 내용은 MySQL 설명서의 MySQL server has gone away를 참조하십시오.

해결 방법

이러한 오류의 원인 및 관련 해결 방법은 다음을 참조하십시오.

  • 연결이 너무 오래 유휴 상태인 경우 클라이언트에서 연결이 잘못 종료될 수 있습니다. 이 문제를 해결하려면 애플리케이션 제한 시간이 MySQL 제한 시간보다 짧은지 확인하고 애플리케이션이 유휴 연결을 종료하는지 확인하십시오.
  • 연결 제한 시간이 초과되면 사용자 지정 파라미터 그룹으로 wait_timeoutinteractive_timeout 파라미터를 늘려 MySQL의 제한 시간을 늘립니다. 자세한 내용은 DB 파라미터 그룹 작업을 참조하십시오.
  • 오류를 생성하는 쿼리가 대용량 데이터 세트를 가져오는 경우 사용자 지정 파라미터 그룹을 사용하여 max_allowed_packet 크기 파라미터를 늘립니다. 자세한 내용은 DB 파라미터 그룹의 파라미터 수정을 참조하십시오.
  • 큰 데이터 세트를 반환할 때만 오류가 발생하는 경우 클라이언트가 9001의 큰 MTU 값을 사용하고 있을 수 있습니다. 이 문제를 해결하려면 클라이언트 TCP/IP MTU 값을 줄입니다. 클라이언트 MTU 값 변경에 대한 자세한 내용은 인스턴스의 MTU 구성을 참조하십시오.
  • init_connect 파라미터가 파라미터 처리를 허용하지 않는 값으로 설정된 경우 연결된 클라이언트 연결이 실패할 수 있습니다. 모든 init_connect 파라미터가 올바르게 처리되었는지 확인합니다. 사용자에게 init_connect 파라미터로 참조되는 모든 절차에 대한 EXECUTE 권한이 있는지 확인합니다.
  • 모든 연결이 동시에 끊기는 경우 이 문제가 발생할 때 다른 연결이 계속 작동 중인지 확인합니다. 이 문제를 해결하려면 Amazon RDS 이벤트를 보고 MySQL 오류 로그를 검토하여 MySQL DB 인스턴스가 충돌하거나 장애 조치되지 않는지 확인하십시오.