max_allowed_packet 최대 크기 관련 오류 해결 방법
MySQL은 서버와 한번에 주고 받는 패킷이나 쿼리에 넣는 데이터 문자열의 최대 크기가 설정되어 있습니다.
Windows PC에서 별다른 설정을 하지 않는 경우 이 값은 기본적으로 4MB로 할당되어 있는데 4MB 이상의 문자열을 입력한다거나 하게 되면 다음과 같은 유형의 오류가 발생합니다.
 
Error Code: 1301. Result of repeat() was larger than max_allowed_packet (4194304) - truncated
cs

메세지의 내용을 해석해 보자면 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
cs

 


 

my.ini 파일을 저장하고 MySQL 서버(서비스)를 재시작 해줍니다.
cmd를 관리자 모드로 열고 다음의 명령어를 통해 재시작 가능합니다.
1
2
net stop MySQL
net start MySQL
cs


max_allowed_packet 값이 바뀌었는지 다음의 쿼리를 통해 확인할 수 있습니다.
이후에는 오류가 발생하지 않습니다.
1
SHOW VARIABLES LIKE 'max_allowed%';
cs


블로그 이미지

도로락

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

,