MySQL 서버에서 max_allowed_packet 크기 변경
-
MySQL 서버에서
max_allowed_packet
크기 변경 -
Windows OS를 사용하는 MySQL 서버에서
max_allowed_packet
크기 변경 -
Ubuntu OS를 사용하여 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
크기 변경
-
Windows 명령줄을 열고 설치 경로를 탐색합니다. 기본 위치를 변경하지 않은 경우 MySQL Server는
C:\Program Files\MySQL\MySQL Server 8.0
에 설치됩니다. -
cd bin
을 사용하여bin
폴더로 이동합니다. -
mysql -u root -p 암호
를 입력하여 MySQL 서버에 로그인합니다. 우리는루트
사용자로 로그인하고 있습니다.사용자 이름
및비밀번호
를 사용할 수 있습니다. -
들어가면 다음 쿼리를 실행하여 MySQL Server에서
max_allowed_packet
크기를 변경합니다.mysql> SET GLOBAL max_allowed_packet=52428800;
-
다음 쿼리를 다시 실행하여 변경 사항을 확인합니다.
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
입니다.
-
my.ini
파일을 엽니다. -
[mysqld]
섹션을 검색하고 이 섹션 아래에 다음 줄을 추가합니다.max_allowed_packet=50M
-
파일을 저장하고 닫습니다.
-
MySQL 서버를 다시 시작하여 변경 사항을 확인합니다.
Ubuntu OS를 사용하여 MySQL 서버에서 max_allowed_packet
크기 변경
MySQL Server에 들어가면 Windows OS에서 사용한 것과 동일한 쿼리를 Ubuntu에서 사용할 수 있습니다. 단계는 다음과 같습니다.
-
Ubuntu 터미널을 열고
sudo su
를 사용하여 수퍼유저로 로그인합니다. -
또한 MySQL 서버에 로그인합니다.
-
변경하기 전에 변수의 기본값이나 이전 값을 확인하는 것이 좋습니다. 이를 위해 다음 쿼리를 사용할 수 있습니다.
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
출력:
+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 67108864| +--------------------+---------+ 1 row in set (0.00 sec)
-
다음 쿼리를 실행하여
max_allowed_packet
값을 70MB(73400320바이트)로 업데이트합니다.mysql> SET GLOBAL max_allowed_packet=73400320;
-
'max_allowed_packet'과 같은 변수 표시
를 실행할 수 있습니다. 변경 사항이 발생하는지 확인하는 쿼리입니다.
구성 파일 편집에 매우 익숙한 사람이라면 다음 솔루션이 특히 적합합니다.
-
/etc/mysql/mysql.conf.d/mysqld.cnf
경로에 있는 구성 파일을 엽니다.$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
-
[mysqld]
섹션에서max_allowed_packet
을 검색하고 해당 값을 원하는 값으로 변경합니다. 없는 경우[mysqld]
아래에 다음 행을 추가하십시오.70M로 변경하고 있음을 기억하십시오. 그러나 번호를 쓸 수 있습니다.
max_allowed_packet=70M
-
파일을 저장하고 종료합니다.
-
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)