MySQL max_allowed_packet 발생시 대처법
페이지 정보
본문
< 상황1 >
MySQL Migration Toolkit을 이용하여 MS Access에 있는 데이터를 옮기던 중에 다음과 같은 오류가 발생
2. Data Bulk Transfer
---------------------
`test`.`TEST_CONTENTS`
-------------------------
Packet for query is too large (1720261 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
Packet for query is too large (1296932 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
0 row(s) transfered.
이 문제를 해결하기 위해서는 mySQL 해당 설정 값을 더 크게 변경해 주어야 합니다.
변경 방법은 아래와 같습니다.
show variables;
SET GLOBAL max_allowed_packet = 1024 * 1024 * 32;
SET SESSION max_allowed_packet = 1024 * 1024 * 32;
< 상황2 >
mysqldump 명령어로 저장된 다른 디비의 자료를 부어넣는 과정에서 아래와 같이 오류가 발생
ERROR 1153 (08501) at line 2769: Got a packet bigger than .'max_allowed_packet' bytes
우선 이전해온 해당 디비를 mysqdump --extend-insert=FALSE 옵션을 이용해서 내려받습니다.
이것을 업로드할때도 에러가 발생하면 문제되는 라인을 제거하거나, mysql 옵션을 변경합니다.
< 해결방법 >
1. mysql client로 연결후에 다은 server variable 을 통해 현재 용량을 확인
mysql> show variable like 'max_allowed_packet%';
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 2097152 |
+--------------------+---------+
1 row in set (0.01 sec)
2. /etc/my.cnf 의 [mysqld] 항목을 수정한다.
[mysqld]
character-set-server=utf8
max_allowed_packet = 64M
3. service mysql restart
4. 1번으로 돌아가서 설정이 변경되었는지 확인하고 client 에서 상황이 해결되었는지 확인해 보고 계속 발생한다면 사이즈를 더 크게 수정해본다.
5. mysqldump는 /etc/my.cnf 의 max_allowed_packet 을 참조하지 않으므로 my.cnf 를 수정해도 계속 에러가 발생한다.
실행시 다음과 같이 --max_allowed_packet 옵션을 추가해야 한다.
mysqldump -u root -pPassword --max_allowed_packet=512M --databases mydatabase--tables mytable > dump.sql
<< 참조사이트 >>
http://blog.naver.com/hbesthee?Redirect=Log&logNo=20035879450
https://www.lesstif.com/pages/viewpage.action?pageId=12451879
MySQL Migration Toolkit을 이용하여 MS Access에 있는 데이터를 옮기던 중에 다음과 같은 오류가 발생
2. Data Bulk Transfer
---------------------
`test`.`TEST_CONTENTS`
-------------------------
Packet for query is too large (1720261 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
Packet for query is too large (1296932 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
0 row(s) transfered.
이 문제를 해결하기 위해서는 mySQL 해당 설정 값을 더 크게 변경해 주어야 합니다.
변경 방법은 아래와 같습니다.
show variables;
SET GLOBAL max_allowed_packet = 1024 * 1024 * 32;
SET SESSION max_allowed_packet = 1024 * 1024 * 32;
< 상황2 >
mysqldump 명령어로 저장된 다른 디비의 자료를 부어넣는 과정에서 아래와 같이 오류가 발생
ERROR 1153 (08501) at line 2769: Got a packet bigger than .'max_allowed_packet' bytes
우선 이전해온 해당 디비를 mysqdump --extend-insert=FALSE 옵션을 이용해서 내려받습니다.
이것을 업로드할때도 에러가 발생하면 문제되는 라인을 제거하거나, mysql 옵션을 변경합니다.
< 해결방법 >
1. mysql client로 연결후에 다은 server variable 을 통해 현재 용량을 확인
mysql> show variable like 'max_allowed_packet%';
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 2097152 |
+--------------------+---------+
1 row in set (0.01 sec)
2. /etc/my.cnf 의 [mysqld] 항목을 수정한다.
[mysqld]
character-set-server=utf8
max_allowed_packet = 64M
3. service mysql restart
4. 1번으로 돌아가서 설정이 변경되었는지 확인하고 client 에서 상황이 해결되었는지 확인해 보고 계속 발생한다면 사이즈를 더 크게 수정해본다.
5. mysqldump는 /etc/my.cnf 의 max_allowed_packet 을 참조하지 않으므로 my.cnf 를 수정해도 계속 에러가 발생한다.
실행시 다음과 같이 --max_allowed_packet 옵션을 추가해야 한다.
mysqldump -u root -pPassword --max_allowed_packet=512M --databases mydatabase--tables mytable > dump.sql
<< 참조사이트 >>
http://blog.naver.com/hbesthee?Redirect=Log&logNo=20035879450
https://www.lesstif.com/pages/viewpage.action?pageId=12451879
댓글목록
등록된 댓글이 없습니다.