Lost connection to MySQL server during query
MySQL 오류 2013을 식별하고 쿼리 응답 중 연결이 끊긴 구간을 확인하는 방법을 설명합니다.
빠른 답변
- 우선 확인할 원인
- 오류 번호 2013 또는 `Lost connection to MySQL server during query`가 표시되면 MySQL 클라이언트 오류 `CR_SERVER_LOST`입니다. 클라이언트가 쿼리의 전체 응답을 받지 못한 상태이므로 서버 재시작 여부, 오류 시각의 서버 로그, 네트워크 시간 제한, 쿼리와 패킷 크기를 순서대로 확인합니다.
- 먼저 확인할 항목
- 현재 화면 또는 로그의 오류 번호가 `2013`인지 확인합니다.
- 적용 범위
- 현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우
- 출처
- MySQL
- 출처 확인일
- 2026-08-29
- 최종 검토
- 2026-08-29
- 수정일
- 2026-08-29
- 정정 이력
- 2026-07-29 이후 기록 없음
- 관련 기술
현재 증상
- 애플리케이션 오류 메시지
먼저 확인할 항목
현재 화면 또는 로그의 오류 번호가 `2013`인지 확인합니다.
현재 화면 또는 로그의 메시지가 `Lost connection to MySQL server during query`인지 확인합니다.
오류 시각과 실행한 쿼리, 요청 또는 배치 작업 식별자를 기록합니다.
서버 오류 로그와 uptime에서 쿼리 실행 중 서버가 종료되거나 다시 시작됐는지 확인합니다.
같은 쿼리의 요청 크기와 서버·클라이언트의 패킷 제한을 비교합니다.
피해야 할 조치
주의
- 실행 결과를 확인하지 않은 채 쓰기 쿼리를 자동 재시도하지 않습니다.
- 원인을 확인하기 전에 네트워크 시간 제한이나 `max_allowed_packet`을 임의로 크게 늘리지 않습니다.
- 오류 로그와 SQL 값을 공유할 때 비밀번호, 인증 정보, 개인정보를 제거합니다.
환경별 원인과 조치
증상
MySQL 클라이언트에서 다음 오류 메시지가 표시됩니다.
Lost connection to MySQL server during query
오류 식별
- 현재 화면 또는 로그에서 오류 번호를 확인합니다.
- 오류 번호가
2013인지 비교합니다. - 오류 메시지가
Lost connection to MySQL server during query인지 비교합니다. - 오류 번호와 메시지가 일치하면 심볼을
CR_SERVER_LOST로 식별합니다.
이 오류는 클라이언트가 쿼리를 서버에 보낸 뒤 전체 응답을 받지 못한 상태입니다. 쿼리를 보내기 전에 연결을 사용할 수 없었던 오류 2006과는 관찰 구간이 다릅니다. 오류 2006이라면 MySQL server has gone away 문서를 확인합니다.
확인 순서
- 오류 시각, 실행한 쿼리, 요청 또는 배치 작업 식별자를 기록합니다.
- 서버 오류 로그와 uptime을 비교해 쿼리 실행 중 서버가 종료되거나 다시 시작됐는지 확인합니다.
- 특정 쿼리에서만 발생하면 요청 크기와 서버·클라이언트의 패킷 제한을 비교합니다.
- 장시간 쿼리에서만 발생하면 클라이언트 읽기 시간 제한과 중간 네트워크 장비의 시간 제한을 확인합니다.
- 여러 쿼리에서 같은 시각에 발생하면 서버·클라이언트 사이의 네트워크 단절과 DNS 이름 확인 상태를 확인합니다.
다음 읽기 전용 조회는 서버가 마지막으로 시작된 뒤의 시간과 현재 제한값을 확인합니다.
SHOW GLOBAL STATUS LIKE 'Uptime';SHOW GLOBAL VARIABLES LIKE 'wait_timeout';SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet';이 값만으로 원인을 확정할 수는 없습니다. 오류 시각의 서버 로그, 애플리케이션 로그, 쿼리 크기와 함께 비교합니다.
재시도 전 확인
- 쓰기 쿼리가 서버에서 실행된 뒤 응답만 유실됐을 수 있으므로 실행 결과를 먼저 확인합니다.
- 중복 실행에 안전한 작업인지 확인한 뒤 재시도 횟수와 간격을 제한합니다.
- 시간 제한과 패킷 제한을 바꾸기 전에 실제 관찰값이 현재 제한을 넘었는지 확인합니다.
SQLSTATE 참고
MySQL 클라이언트 오류의 SQLSTATE 값은 항상 HY000이므로, 이 오류를 다른 클라이언트 오류와 구별하는 기준으로 사용하지 않습니다.
출처
참고 자료
MySQL · 공식 자료 · 확인 범위: 오류 번호 2013의 심볼은 CR_SERVER_LOST입니다., 오류 번호 2013의 메시지는 `Lost connection to MySQL server during query`입니다., 클라이언트 오류의 SQLSTATE 값은 항상 `HY000`이므로 오류를 구별하는 기준으로 사용할 수 없습니다. · 확인일: 2026-08-29
MySQL · 공식 자료 · 확인 범위: CR_SERVER_LOST는 클라이언트가 쿼리의 전체 응답을 받지 못한 상태를 나타냅니다., 서버 또는 클라이언트 시간 제한, 큰 패킷, 이름 확인 실패, 서버 종료와 재시작이 연결 중단 원인 후보입니다., 서버 오류 로그와 uptime은 서버 종료 또는 재시작 여부를 확인하는 자료입니다. · 확인일: 2026-08-29