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으로 쿼리 최적화 및 인덱스 추가 |