MySQL 덤프를 가져오고 다음 오류가 발생합니다.
$ mysql foo < foo.sql
ERROR 1153 (08S01) at line 96: Got a packet bigger than 'max_allowed_packet' bytes
분명히 데이터베이스에 첨부 파일이있어 매우 큰 삽입이 가능합니다.
이것은 내 로컬 컴퓨터, MySQL 패키지에서 MySQL 5가 설치된 Mac에 있습니다.
max_allowed_packet
덤프를 가져올 수 있도록 어디서 변경 합니까?
설정해야 할 것이 있습니까?
방금 실행 mysql --max_allowed_packet=32M …
하면 같은 오류가 발생했습니다.
답변
클라이언트 (가져 오기를 수행하기 위해 실행 중)와 가져 오기를 실행하고 승인하는 데몬 mysqld 둘 다에 대해 변경해야 할 수도 있습니다.
클라이언트의 경우 명령 행에서 지정할 수 있습니다.
mysql --max_allowed_packet=100M -u root -p database < dump.sql
또한 mysqld 섹션 에서 my.cnf 또는 my.ini 파일을 변경 하고 다음을 설정하십시오.
max_allowed_packet=100M
또는 동일한 서버에 연결된 MySQL 콘솔에서 다음 명령 을 실행할 수 있습니다 .
set global net_buffer_length=1000000;
set global max_allowed_packet=1000000000;
(패킷 크기에는 매우 큰 값을 사용하십시오.)
답변
michaelpryor가 말했듯 이 클라이언트 와 데몬 mysqld 서버 모두 에 대해 변경해야 합니다.
클라이언트 명령 행에 대한 그의 솔루션은 좋지만 구성에 따라 ini 파일이 항상 트릭을 수행하지는 않습니다.
따라서 터미널을 열고 mysql을 입력하여 mysql 프롬프트를 표시 한 후 다음 명령을 실행하십시오.
set global net_buffer_length=1000000;
set global max_allowed_packet=1000000000;
mysql 프롬프트를 열어두고 두 번째 터미널에서 명령 행 SQL 실행을 실행하십시오.
답변
my.ini
서버 섹션 아래의 파일 (Windows의 경우 \ Program Files \ MySQL \ MySQL Server에 있음) 에서 다음과 같이 변경할 수 있습니다 .
[mysqld]
max_allowed_packet = 10M
답변
mysql.com dmg 패키지 배포에서 MySQL을 사용할 때 Mac OS X에서 my.cnf 다시
기본적으로 my.cnf는 어디에도 없습니다.
당신이 중 하나를 복사 할 필요 /usr/local/mysql/support-files/my*.cnf
로 /etc/my.cnf
하고 다시 시작 mysqld
. (MySQL 환경 설정 창에서 설치 한 경우 수행 할 수 있습니다.)
답변
etc / my.cnf에서 max_allowed _packet 및 net_buffer_length를 다음으로 변경하십시오.
max_allowed_packet=100000000
net_buffer_length=1000000
이것이 작동하지 않으면 다음으로 변경하십시오.
max_allowed_packet=100M
net_buffer_length=100K
답변
수정 사항은 MySQL 데몬의 max_allowed_packet을 늘리는 것입니다. Super로 로그인하고 다음 명령을 실행하여 실행중인 데몬에이를 수행 할 수 있습니다.
# mysql -u admin -p
mysql> set global net_buffer_length=1000000;
Query OK, 0 rows affected (0.00 sec)
mysql> set global max_allowed_packet=1000000000;
Query OK, 0 rows affected (0.00 sec)
그런 다음 덤프를 가져 오십시오.
gunzip < dump.sql.gz | mysql -u admin -p database
답변
CENTOS 6 /etc/my.cnf의 [mysqld] 섹션에서 올바른 구문은 다음과 같습니다.
[mysqld]
# added to avoid err "Got a packet bigger than 'max_allowed_packet' bytes"
#
net_buffer_length=1000000
max_allowed_packet=1000000000
#