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 |
'데이터베이스[DB]' 카테고리의 다른 글
[MySQL] MySQL JSON 관련 함수 (0) | 2018.03.24 |
---|---|
[MySQL] MySQL 파입 입출력 경로 바꿔 주기. secure-file-priv 설정 (0) | 2018.03.22 |
[ORACLE] ORA-00911 문자가 부적합 합니다 오류 발생시 해결 방법 (0) | 2018.03.21 |
[MySQL] 시스템 함수 (0) | 2018.03.21 |
[MySQL] MySQL 날짜 및 시간 함수 (9) | 2018.03.21 |