Amazon RDS MySQL DB 인스턴스에 연결할 때 “MySQL 서버가 사라졌습니다.” 라는 오류를 해결하려면 어떻게 해야 하나요?

2분 분량
0

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 설명서가 사라졌음을 참조하세요.

해결 방법

다음과 같은 오류의 원인 및 관련 해결 방법을 참조하세요.

  • 연결이 너무 오랫동안 유휴 상태이면 클라이언트에서 연결이 잘못 종료될 수 있습니다. 이 문제를 해결하려면, 애플리케이션 제한 시간이 MySQL 제한 시간보다 짧은지 확인하고 애플리케이션이 유휴 연결을 종료하는지 확인하세요.
  • 연결 제한 시간이 초과되면 사용자 지정 파라미터 그룹을 사용하여 wait_timeoutinteractive_timeout 매개 변수를 늘려 MySQL의 제한 시간을 늘리세요. 자세한 내용은 파라미터 그룹 작업을 참조하세요.
  • 오류를 생성하는 쿼리가 대규모 데이터세트를 검색하는 경우 사용자 지정 파라미터 그룹을 사용하여 max_allowed_packet 사이즈 매개변수를 늘리세요. 자세한 내용은 DB 파라미터 그룹의 파라미터 수정을 참조하세요.
    참고: Amazon Aurora의 경우 파라미터를 수정하고 클러스터 파라미터 그룹에 설정하여 전체 클러스터 수준에서 적용할 수 있습니다. DB 파라미터 그룹에 설정하면 파라미터가 인스턴스 수준에서만 적용됩니다. Amazon Lightsail MySQL 데이터베이스의 경우 명령줄 인터페이스(CLI)를 사용하여 수정하기 전에 파라미터를 수정할 수 있는지 확인해야 합니다. 자세한 내용은 Amazon Lightsail의 데이터베이스 파라미터 업데이트를 참조하세요. Lightsail 인스턴스 또는 서버 로컬 MySQL 데이터베이스 또는 Amazon Elastic Compute Cloud(Amazon EC2) MySQL의 경우 구성 파일에서 파라미터를 설정할 수 있습니다. 일반 온-프레미스 MySQL 환경에서 설정하는 방식과 유사하게 글로벌 xxx를 설정할 수도 있습니다.
  • 대용량 데이터 세트를 반환할 때만 오류가 발생하는 경우 클라이언트는 9001이라는 큰 MTU 값을 사용하고 있을 수 있습니다. 이 문제를 해결하려면 클라이언트 TCP/IP MTU 값을 줄이세요. 클라이언트 MTU 값 변경에 대한 자세한 내용은 인스턴스의 MTU 구성을 참조하세요.
  • init_connect 매개 변수가 매개 변수 처리를 허용하지 않는 값으로 설정된 경우 관련 클라이언트 연결이 실패할 수 있습니다. 모든 init_connect 매개변수가 올바르게 처리되었는지 확인하세요. 사용자에게 init_connect 매개 변수로 참조되는 모든 프로시저에 대한 EXECUTE 권한이 있는지 확인하세요.
  • 모든 연결이 동시에 끊기는 경우 이 문제가 발생했을 때 다른 연결도 계속 작동하는지 확인하세요. 이 문제를 해결하려면 Amazon RDS 이벤트를 보고 MySQL 오류 로그를 검토하여 MySQL DB 인스턴스가 충돌하거나 페일오버되지 않는지 확인하세요.

관련 정보

MySQL 데이터베이스 엔진을 실행하는 DB 인스턴스에 연결

Amazon RDS DB 인스턴스 관리