RadarURL
데이터베이스

Mysql 에서 Got a packet bigger than 'max_allowed_packet' bytes 오류

by JaeSoo posted Dec 25, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

질문:

mysql 4.0.14 에서 덤프를했습니다. 파일이 조금 큽니다. 525M 정도...근데, 이파일을 mysql 4.0.22 import 하려하는데 다음과 같은 에러를 보냅니다.

Got a packet bigger than 'max_allowed_packet' bytes

my.cnf 도 수정해보았는데...역시 안되네요...아시는분 계신가요?


답변:

해결하셨다니 다행입니다.
혹시나 싶어 관련 내용을 좀 더 보충하도록 하겠습니다.

mysql의 max_allowed_packet 설정값은 mysql이 클라이언트와 통신할 때 핸들링 할 수 있는 데이터의 양을 의미합니다. 디폴트로는 1mb로 설정되어 있습니다.

mysql 3.23버젼에선 이 값을 16mb까지 설정할 수 있고 4.0.1 이상부터는 1기가까지 가능합니다.

대량의 데이터를 mysql과 주고받을땐 connect timeout 시간이나 (혹시 server-side script를 이용한다면) 스크립트의 timeout시간도 확인해봐야 하며, timeout의 값이 충분히 설정되어 있다면 다음으로 max_allowed_packet의 값을 의심해봐야 합니다.

이 값은 mysql에 입력하는 데이터의 양 뿐만 아니라, 리턴되는 데이터의 양과도 관련이 있습니다. 따라서 대량의 데이터를 리턴받아야 하는 상황(blob data type같은..)이 요구될때도 설정값을 살펴봐야 합니다.

mysql.com에서는 이 값을 적당히 늘려주는 것이 더 좋다고(안전하다고) 밝히고 있습니다. mysql은 지정된 값만큼 항상 memory를 가지고 있는 것이 아니라, 필요한 양 만큼의 메모리만(단, max_allowed_packet의 값에 제한받습니다.) 사용합니다.

이상으로
http://dev.mysql.com/doc/mysql/en/packet-too-large.html
에 있는 내용 가지고 아는척 해봤습니다. :oops: :oops:


출처 : https://kldp.org/node/55172