📕🐘 도로락 - 코끼리를 냉장고에 넣는 방법
데이터베이스[DB] | 2018. 3. 22. 00:30

[MySQL] MySQL Error Code: 1301 larger than max_allowed_packet 오류 해결법

max_allowed_packet 최대 크기 관련 오류 해결 방법

MySQL은 서버와 한번에 주고 받는 패킷이나 쿼리에 넣는 데이터 문자열의 최대 크기가 설정되어 있습니다.

Windows PC에서 별다른 설정을 하지 않는 경우 이 값은 기본적으로 4MB로 할당되어 있는데 4MB 이상의 문자열을 입력한다거나 하게 되면 다음과 같은 유형의 오류가 발생합니다.

Error Code: 1301. Result of repeat() was larger than max_allowed_packet (4194304) - truncated

메세지의 내용을 해석해 보자면 max_allowed_packet 최대 설정 값인 4MB가 넘어갔다는 뜻입니다.

오류 해결 방법

당연하게도 max_allowed_packet 값을 늘려주면 됩니다.

이 값은 MySQL 설정파일인 my.ini 파일 을 통해 수정할 수 있습니다.

my.ini 파일이 있는 경로로 이동해 열어줍니다.

C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

Ctrl + F를 눌러 max_all 이라는 키워드로 검색합니다.

다음과 같이 max_allowed_packet 설정 부분을 찾을 수 있는데 이부분을 원하는 크기로 늘려줍니다.

1024M으로 눌려주게 되면 1GB가 됩니다.

# The maximum size of one packet or any generated or intermediate string, or any parameter sent by the
# mysql_stmt_send_long_data() C API function.
max_allowed_packet=4M

my.ini 파일을 저장하고 MySQL 서버(서비스)를 재시작 해줍니다.

cmd를 관리자 모드로 열고 다음의 명령어를 통해 재시작 가능합니다.

net stop MySQL
net start MySQL

max_allowed_packet 값이 바뀌었는지 다음의 쿼리를 통해 확인할 수 있습니다.

이후에는 오류가 발생하지 않습니다.

SHOW VARIABLES LIKE 'max_allowed%';
도로락

도로락

Writer

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그