1153: Got a packet bigger than 'max_allowed_packet' bytes
MySQL의미
클라이언트 또는 서버가 허용된 최대 패킷 크기(max_allowed_packet)보다 큰 데이터 패킷을 보내려 했다. 보통 큰 BLOB/TEXT 값이나 매우 큰 bulk INSERT에서 발생한다.
원인
매우 큰 BLOB/TEXT 데이터 삽입. 거대한 단일 INSERT 또는 다중 행 bulk INSERT. 큰 결과를 반환하는 쿼리. 작은 max_allowed_packet 값. mysqldump로 큰 행 가져오기.
해결 방법
max_allowed_packet을 늘리고(서버와 클라이언트 모두) 다시 접속한다: SET GLOBAL max_allowed_packet = 67108864; (64MB). 영구 적용하려면 my.cnf의 [mysqld] 아래에 max_allowed_packet = 64M을 추가한다. 큰 bulk 작업은 작은 배치로 분할한다. 매우 큰 값을 정말 저장해야 하는지 검토한다.
같은 데이터베이스의 다른 항목
- 1227Access denied; you need (at least one of) the PRIVILEGE
- 3730Cannot drop table referenced by a foreign key constraint
- 2013Lost connection to MySQL server during query
- 1969MariaDB: Query execution was interrupted (max_statement_time exceeded)
- 1927MariaDB: ER_CONNECTION_KILLED: Connection was killed (연결이 종료됨)
- 1290ER_OPTION_PREVENTS_STATEMENT: running with the --read-only option (--read-only 옵션으로 실행 중)
- 1836ER_READ_ONLY_MODE: Running in read-only mode (읽기 전용 모드로 실행 중)