Błąd MySQL 1153-mam pakiet większy niż' max allowed packet ' bajtów

Importuję zrzut MySQL i otrzymuję następujący błąd.

$ mysql foo < foo.sql 
ERROR 1153 (08S01) at line 96: Got a packet bigger than 'max_allowed_packet' bytes

Najwyraźniej są załączniki w bazie danych, co sprawia, że bardzo duże wkładki.


To jest na moim komputerze lokalnym, Mac z MySQL 5 zainstalowany z pakietu MySQL.

Gdzie zmienić max_allowed_packet, aby móc zaimportować zrzut?

Czy jest coś jeszcze, co powinienem ustawić?

Samo uruchomienie mysql --max_allowed_packet=32M … spowodowało ten sam błąd.

Author: Bill Karwin, 2008-09-18

14 answers

Prawdopodobnie musisz go zmienić zarówno dla klienta (uruchamiasz import), jak i demona mysqld, który działa i akceptuje import.

Dla klienta, można go podać w wierszu poleceń:

mysql --max_allowed_packet=100M -u root -p database < dump.sql

Również, zmienić my.cnf lub my.plik ini w sekcji mysqld i ustaw:

max_allowed_packet=100M

Lub możesz uruchomić te polecenia w konsoli MySQL podłączonej do tego samego serwera:

set global net_buffer_length=1000000; 
set global max_allowed_packet=1000000000;

(Użyj bardzo dużej wartości dla pakietu rozmiar.)

 624
Author: Michael Pryor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-29 06:54:04

Jak powiedział michaelpryor, musisz zmienić go dla zarównoklienta , jak i demona serwera mysqld.

Jego rozwiązanie dla linii poleceń klienta jest dobre, ale pliki ini nie zawsze sprawdzają się w zależności od konfiguracji.

Więc, otwórz terminal, wpisz mysql, aby uzyskać monit mysql i wydaj te polecenia:

set global net_buffer_length=1000000; 
set global max_allowed_packet=1000000000; 

Zachowaj otwarty znak zachęty mysql i Uruchom wykonanie SQL w wierszu poleceń na drugim terminalu..

 128
Author: Joshua Fox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-06 18:42:18

Można to zmienić w pliku my.ini (w systemie Windows, znajdującym się w sekcji \Program Files \ MySQL \ MySQL Server) w sekcji serwer, na przykład:

[mysqld]

max_allowed_packet = 10M
 42
Author: GHad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-09 01:28:07

Re my.cnf na Mac OS X podczas korzystania z MySQL z mysql.com Dystrybucja pakietów dmg

Domyślnie, mój.cnf nigdzie nie można znaleźć.

Należy skopiować jeden z /usr/local/mysql/support-files/my*.cnf do /etc/my.cnf i ponownie uruchomić mysqld. (Co możesz zrobić w panelu preferencji MySQL, jeśli go zainstalowałeś.)

 17
Author: kch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-19 20:31:07

W etc/my.cnf spróbuj zmienić max_allowed _packet i net_buffer_length na

max_allowed_packet=100000000
net_buffer_length=1000000 

Jeśli to nie działa, spróbuj zmienić na

max_allowed_packet=100M
net_buffer_length=100K 
 14
Author: Amirtha Rajan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-03 10:27:07

Poprawką jest zwiększenie max_allowed_packet demona MySQL. Możesz to zrobić z działającym demonem, logując się jako Super i uruchamiając następujące polecenia.

# 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)

Następnie zaimportować swój zrzut:

gunzip < dump.sql.gz | mysql -u admin -p database
 13
Author: Primoz Rome,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-28 19:38:47

Na CENTOS 6 / etc / my.cnf, w sekcji [mysqld] poprawna składnia to:

[mysqld]
# added to avoid err "Got a packet bigger than 'max_allowed_packet' bytes"
#
net_buffer_length=1000000 
max_allowed_packet=1000000000
#
 6
Author: Mike Castro Demaria,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-02 19:57:20

Użyj zmiennej max_allowed_packet wydającej polecenie typu

mysql --max_allowed_packet=32M -u root -p database < dump.sql

 4
Author: Tomasz Tybulewicz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 14:41:33

Trochę niezwiązane z Twoim problemem, więc oto jeden dla Google.

Jeśli nie mysqldump SQL, to może być, że Twój SQL jest uszkodzony.

Właśnie dostałem ten błąd przez przypadkowe posiadanie unclosed string literal w moim kodzie. Niechlujne palce się zdarzają.

To fantastyczny komunikat o błędzie dla uciekającego ciągu, dzięki za ten MySQL!

 4
Author: jplindstrom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-21 14:55:15

Czasami Ustawienie typu:

max_allowed_packet = 16M
W moim.ini nie działa.

Spróbuj określić my.ini jak następuje:

set-variable = max_allowed_packet = 32M

Lub

set-variable = max_allowed_packet = 1000000000

Następnie uruchom ponownie Serwer:

/etc/init.d/mysql restart
 1
Author: Grzegorz Brzęczyszczykiewicz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-16 07:09:14

Jest zagrożeniem dla bezpieczeństwa posiadanie max_allowed_packet wyższej wartości, ponieważ atakujący może wypychać większe pakiety i zawiesić system.

Więc optymalna wartość max_allowed_packet do dostrojenia i przetestowania.

Lepiej jest zmienić, gdy jest to wymagane (używając set global max_allowed_packet = xxx) niż mieć go w ramach mojego.ini lub my.conf .

 1
Author: Shiva,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-03 10:14:10

Pracuję w środowisku współdzielonego hostingu i hostowałem stronę internetową opartą na Drupalu. Nie mogę też edytować pliku my.ini ani my.conf.

Więc usunąłem wszystkie tabele, które były związane z Cache i dlatego mogłem rozwiązać ten problem. Nadal szukam idealnego rozwiązania / sposobu na rozwiązanie tego problemu.

Edit - usunięcie tabel sprawiło mi problemy, ponieważ Drupal spodziewał się, że te tabele powinny istnieć. Więc opróżniłem zawartość tych tabele, które rozwiązały problem.

 0
Author: Raj Pawan Gumdal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-28 08:51:27

Błąd:

ERROR 1153 (08S01) at line 6772: Got a packet bigger than 'max_allowed_packet' operacja bajtów nie powiodła się z kodem exit 1

QUERY:

SET GLOBAL max_allowed_packet=1073741824;
SHOW VARIABLES LIKE 'max_allowed_packet'; 

Wartość maksymalna:

Default Value (MySQL >= 8.0.3)  67108864
Default Value (MySQL <= 8.0.2)  4194304
Minimum Value   1024
Maximum Value   1073741824
 0
Author: Tính Ngô Quang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-29 06:33:45

Ustaw max_allowed_packet na to samo (lub więcej), co wtedy, gdy wrzuciłeś go do mysqldump. Jeśli nie możesz tego zrobić, zrób zrzut ponownie z mniejszą wartością.

Czyli zakładając, że wrzuciłeś go z mysqldump. Jeśli użyłeś innego narzędzia, jesteś zdany na siebie.

 -1
Author: MarkR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 19:06:37