본문 바로가기
언어 공부/SQL

[ SQL ] Lost Connection to MySQL server during query

by 무으리 2025. 1. 11.

SQL에서 대용량의 데이터를 취급할 때 볼 수 있는 에러문이다. 이 에러문이 왜 나오는 것 일까?

그건 바로 데이터가 많다보니 MySQL Workbench에서 실행한 쿼리가 정해진 제한시간동안 완수하지 못하고 중간에 계속하여 연결이 끊기는 현상이다.

 

위와 같은 오류는 많은 이유로 인해 발생할 수 있는데 보통의 경우는 아래 두가지 방법으로 해결할 수 있을 것이다.

 

1. 이 문제를 해결하기 위한 방법은 docker-compose 파일의 MySQL 설정을 수정하거나 

2. MySQL Workbench 에서 설정을 수정하는 방법이 있다.

 

1. docker-compose 의 MySQL 설정 수정

command 옵션에 max_allowed_packet의 값과, net_read_timeout, net_write_timeout 의 시간을 늘리는 방법.

 

패킷 크기와 타임아웃 시간을 늘림으로 써 대용량 데이터를 취급할 때 연결이 끊기지 않고 안정적으로 작업을 수행할 수 있다.

 

2. MySQL Workbench에서 설정 수정

 

Workbench 의 Edit -> Preferences -> SQL Editor 에서 아래 그림의 네모박스 친것의 시간을 늘리면 된다.

 


요약

쿼리 실행 시간이 너무 길어 타임아웃 발생 wait_timeout, net_read_timeout, net_write_timeout 값을 증가
네트워크 문제 방화벽 및 네트워크 환경 점검
MySQL 서버 다운 mysqld 프로세스 상태 확인 및 로그 분석
패킷 크기 초과 max_allowed_packet 값을 증가
테이블 손상 CHECK TABLE, REPAIR TABLE 실행
서버 리소스 부족 htop, iostat 등을 통해 리소스 사용량 점검
쿼리 리소스 과다 사용 EXPLAIN으로 쿼리 최적화 및 인덱스 추가