max_allowed_packet은 MySQL에서 한 번에 전송할 수 있는 패킷의 최대 크기를 결정하는 중요한 설정값입니다. 이 변수는 세션 변수(session variable)이자 읽기 전용(read only) 변수로 분류됩니다.
현재 max_allowed_packet 값 확인하기
현재 설정된 max_allowed_packet 값을 확인하려면 show variables 명령어를 사용합니다. 명령어는 다음과 같습니다.
mysql> show variables like 'max_allowed_packet';
위 명령어를 실행하면 다음과 같은 결과가 출력됩니다.
+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ 1 row in set (0.04 sec)
출력 결과를 보면 현재 값이 4194304(약 4MB)로 설정되어 있는 것을 확인할 수 있습니다.
my.ini 파일에서 값 변경하기
클라이언트 측에서 max_allowed_packet 값을 영구적으로 변경하려면 MySQL 설정 파일인 'my.ini' 파일을 수정해야 합니다. 파일에 다음과 같이 원하는 크기를 지정합니다.
max_allowed_packet = 4567890;
설정 파일을 수정한 후에는 변경 사항을 적용하기 위해 MySQL 서버를 재시작해야 합니다.
전역(Global) 변수로 값 변경하기
서버를 재시작하지 않고 즉시 전역적으로 값을 변경하고 싶다면 set global 구문을 사용할 수 있습니다. 쿼리는 다음과 같습니다.
mysql> set global max_allowed_packet=456789; Query OK, 0 rows affected, 1 warning (0.00 sec)
쿼리가 성공적으로 실행되면 전역 설정이 변경됩니다. 단, 이 방식으로 변경한 값은 서버를 재시작하면 초기화되므로, 영구적인 변경을 원한다면 반드시 my.ini 파일도 함께 수정하는 것이 좋습니다.
정리
max_allowed_packet 크기 변경 절차를 요약하면 다음과 같습니다.
1. show variables like 'max_allowed_packet'; 명령어로 현재 값을 확인합니다.
2. 영구 변경을 원하면 my.ini 파일에 새 값을 추가합니다.
3. 임시 전역 변경은 set global max_allowed_packet=값;으로 수행합니다.
4. 서버를 재시작하면 my.ini에 설정된 값이 최종 적용됩니다.