MySQL 서버에서 max_allowed_packet 크기 변경

Mehvish Ashiq 2023년6월20일
  1. MySQL 서버에서 max_allowed_packet 크기 변경
  2. Windows OS를 사용하는 MySQL 서버에서 max_allowed_packet 크기 변경
  3. Ubuntu OS를 사용하여 MySQL 서버에서 max_allowed_packet 크기 변경
MySQL 서버에서 max_allowed_packet 크기 변경

이 튜토리얼은 MySQL 서버에서 max_allowed_packet 크기를 변경하는 방법을 교육합니다. 이를 배우기 위해 Windows 10과 Linux(Ubuntu)의 두 가지 운영 체제를 사용할 것입니다.

MySQL 서버에서 max_allowed_packet 크기 변경

기본값 max_allowed_packet보다 큰 파일을 업로드하려고 하면 max_allowed_packet보다 큰 패킷은 허용되지 않습니다라는 오류가 발생합니다.

이 오류를 제거하려면 max_allowed_packet의 크기를 변경해야 합니다. 그러나 그 전에 다음과 같이 기본값을 확인합시다.

mysql> SHOW VARIABLES LIKE 'max_allowed_packet';

출력:

+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set (0.06 sec)

현재 max_allowed_packet의 크기는 4MB, 즉 4194304바이트입니다. MySQL Docs를 고려하면 MySQL 클라이언트와 서버는 고유한 max_allowed_packet 크기를 가집니다.

SHOW VARIABLES LIKE 'max_allowed_packet';을 사용하여 위에서 본 값 query는 MySQL 서버 측의 값입니다. 더 큰 패킷을 처리하려면 max_allowed_packet 값을 늘려야 합니다.

50MB로 변경하고 싶다고 가정합니다. 서버측(my.ini 파일의 [mysqld] 섹션)과 클라이언트측([mysql] 섹션 또는 my.ini 파일의 [클라이언트]).

SUPER 권한(권한)이 있는 경우 SQL 쿼리를 사용하여 이 설정을 변경할 수도 있습니다. 어떻게? 아래에서 두 솔루션을 모두 살펴보겠습니다.

Windows OS를 사용하는 MySQL 서버에서 max_allowed_packet 크기 변경

  1. Windows 명령줄을 열고 설치 경로를 탐색합니다. 기본 위치를 변경하지 않은 경우 MySQL Server는 C:\Program Files\MySQL\MySQL Server 8.0에 설치됩니다.

  2. cd bin을 사용하여 bin 폴더로 이동합니다.

  3. mysql -u root -p 암호를 입력하여 MySQL 서버에 로그인합니다. 우리는 루트 사용자로 로그인하고 있습니다. 사용자 이름비밀번호를 사용할 수 있습니다.

  4. 들어가면 다음 쿼리를 실행하여 MySQL Server에서 max_allowed_packet 크기를 변경합니다.

    mysql> SET GLOBAL max_allowed_packet=52428800;
    
  5. 다음 쿼리를 다시 실행하여 변경 사항을 확인합니다.

    mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
    

    출력:

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 52428800|
    +--------------------+---------+
    1 row in set (0.00 sec)
    

아래 제시된 해결책은 MySQL Server를 기본 위치에 설치한 경우 기본 경로에 있는 구성 파일을 사용하는 것입니다. 구성 파일의 경로는 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini입니다.

  1. my.ini 파일을 엽니다.

  2. [mysqld] 섹션을 검색하고 이 섹션 아래에 다음 줄을 추가합니다.

    max_allowed_packet=50M
    
  3. 파일을 저장하고 닫습니다.

  4. MySQL 서버를 다시 시작하여 변경 사항을 확인합니다.

Ubuntu OS를 사용하여 MySQL 서버에서 max_allowed_packet 크기 변경

MySQL Server에 들어가면 Windows OS에서 사용한 것과 동일한 쿼리를 Ubuntu에서 사용할 수 있습니다. 단계는 다음과 같습니다.

  1. Ubuntu 터미널을 열고 sudo su를 사용하여 수퍼유저로 로그인합니다.

  2. 또한 MySQL 서버에 로그인합니다.

  3. 변경하기 전에 변수의 기본값이나 이전 값을 확인하는 것이 좋습니다. 이를 위해 다음 쿼리를 사용할 수 있습니다.

    mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
    

    출력:

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 67108864|
    +--------------------+---------+
    1 row in set (0.00 sec)
    
  1. 다음 쿼리를 실행하여 max_allowed_packet 값을 70MB(73400320바이트)로 업데이트합니다.

    mysql> SET GLOBAL max_allowed_packet=73400320;
    
  2. 'max_allowed_packet'과 같은 변수 표시를 실행할 수 있습니다. 변경 사항이 발생하는지 확인하는 쿼리입니다.

구성 파일 편집에 매우 익숙한 사람이라면 다음 솔루션이 특히 적합합니다.

  1. /etc/mysql/mysql.conf.d/mysqld.cnf 경로에 있는 구성 파일을 엽니다.

    $ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
    
  2. [mysqld] 섹션에서 max_allowed_packet을 검색하고 해당 값을 원하는 값으로 변경합니다. 없는 경우 [mysqld] 아래에 다음 행을 추가하십시오.

    70M로 변경하고 있음을 기억하십시오. 그러나 번호를 쓸 수 있습니다.

    max_allowed_packet=70M
    
  3. 파일을 저장하고 종료합니다.

  4. systemctl restart mysql을 사용하여 MySQL 서버를 다시 시작하고 다음을 실행하여 업데이트를 확인하십시오.

    mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
    

    출력:

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 73400320|
    +--------------------+---------+
    1 row in set (0.03 sec)
    
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

관련 문장 - MySQL Server