MySQL 오류 1153 - 'max_allowed_packet' 바이트보다 큰 패킷을 받았습니다.
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 파일(보통은 /etc/mysql/에 있음)을 변경하여 다음과 같이 설정합니다.
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
\ Files(Windows의 경우\Program Files에 ).[ ][My] Server]에는 다음과 같이 표시됩니다(예 [Server][SQL\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은 MySQL을 사용합니다).
수정은 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
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
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
#
사용하다max_allowed_packet
를 .
mysql --max_allowed_packet=32M -u root -p database < dump.sql
당신의 문제와는 약간 관련이 없습니다. 구글을 위한 문제가 있습니다.
SQL을 mysqldump하지 않은 경우 SQL이 손상되었을 수 있습니다.
실수로 코드에 닫히지 않은 문자열 리터럴이 있어서 이 오류가 발생했습니다.손버릇이 나쁘다.
MySQL 덕분에 런어웨이 스트링에 대한 환상적인 오류 메시지입니다!
오류:
6772행에서 ERROR 1153 (08S01) : 'max_allowed_packet' 바이트보다 큰 패킷을 받았습니다.종료 코드 1로 작업이 실패했습니다.
질문:
SET GLOBAL max_allowed_packet=1073741824;
SHOW VARIABLES LIKE 'max_allowed_packet';
최대값:
Default Value (MySQL >= 8.0.3) 67108864
Default Value (MySQL <= 8.0.2) 4194304
Minimum Value 1024
Maximum Value 1073741824
가끔 입력 설정:
max_allowed_packet = 16M
my.ini가 작동하지 않습니다.
다음과 같이 my.ini를 확인합니다.
set-variable = max_allowed_packet = 32M
또는
set-variable = max_allowed_packet = 1000000000
그런 다음 서버를 재시작합니다.
/etc/init.d/mysql restart
보안상의 리스크가 있습니다.max_allowed_packet
공격자는 더 큰 사이즈의 패킷을 푸시하여 시스템을 크래시할 수 있습니다.
즉, 최적의 가치max_allowed_packet
조정되고 테스트됩니다.
my.ini 또는 my.conf의 일부로 사용하는 것보다 필요할 때(를 사용하여) 변경하는 것이 좋습니다.
이 쿼리로 문제를 해결했습니다.
SET GLOBAL max_allowed_packet=1073741824;
이 쿼리로 max_allowed_module을 체크합니다.
SHOW VARIABLES LIKE 'max_allowed_packet';
저는 공유 호스팅 환경에서 일하고 있으며 Drupal을 기반으로 한 웹사이트를 호스팅하고 있습니다.를 편집할 수 없습니다.my.ini
파일 또는my.conf
파일링도 합니다.
그래서 제가 관련된 모든 표를 삭제했습니다.Cache
그래서 나는 이 문제를 해결할 수 있었다.그래도 저는 이 문제를 해결할 완벽한 해결책을 찾고 있습니다.
편집 - 문제가 발생한 테이블을 삭제하면서 Coz Drupal은 이 테이블이 존재해야 한다고 생각했습니다.그래서 나는 이 표들의 내용물을 비워서 문제를 해결했다.
max_allowed_packet을 mysqldump로 덤프했을 때와 같은(또는 그 이상) 설정으로 합니다.그렇지 않으면 더 작은 값으로 덤프를 다시 만듭니다.
즉, mysqldump와 함께 버렸다고 가정합니다.다른 도구를 사용했다면 알아서 하세요.
언급URL : https://stackoverflow.com/questions/93128/mysql-error-1153-got-a-packet-bigger-than-max-allowed-packet-bytes
'programing' 카테고리의 다른 글
LAMP 설치에서 MySQL을 MariaDb로 변경하는 방법 (0) | 2022.09.27 |
---|---|
속성을 프로그래밍 방식으로 설정하려면 어떻게 해야 합니까? (0) | 2022.09.27 |
'for' 루프의 마지막 요소를 감지하는 피토닉 방법은 무엇입니까? (0) | 2022.09.27 |
MariaDB 아카이브 엔진 설치 (0) | 2022.09.27 |
Moment.js를 최신 개체로 변환 (0) | 2022.09.27 |