✦ Oplossingen · Database (MySQL/MariaDB)

MySQL: Got a packet bigger than 'max_allowed_packet' bytes

'Got a packet bigger than max_allowed_packet bytes' (fout 1153) komt bij grote imports of grote velden. Zo verhoog je max_allowed_packet op server én client.

Waarom gebeurt dit?

max_allowed_packet bepaalt hoe groot één bericht tussen client en databaseserver mag zijn: één query, of één rij in het resultaat. Een INSERT met een grote afbeelding, een groot JSON-veld of een dump met veel rijen per INSERT kan daarboven komen. De server geeft dan fout 1153, of de verbinding wordt verbroken (server has gone away).

De instelling bestaat zowel op de server als op de client (bijvoorbeeld de mysql-opdrachtregel of mysqldump). Beide moeten groot genoeg zijn.

Zo los je het op, stap voor stap

Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.

  1. Bekijk de huidige waarde

    Log in als beheerder en vraag de huidige instelling op.

    SHOW VARIABLES LIKE 'max_allowed_packet';
  2. Verhoog tijdelijk op de server

    Geldt voor nieuwe verbindingen tot de volgende herstart. Je hebt beheerrechten nodig.

    SET GLOBAL max_allowed_packet = 67108864;  -- 64 MB
  3. Verhoog blijvend in de configuratie

    Zet de waarde in de serverconfiguratie en herstart de databaseservice.

    [mysqld]
    max_allowed_packet = 64M
  4. Geef de client dezelfde ruimte

    Bij importeren of exporteren via de opdrachtregel.

    mysql --max_allowed_packet=64M -u root -p databasenaam < dump.sql
    mysqldump --max_allowed_packet=64M -u root -p databasenaam > dump.sql
  5. Overweeg of de data in de database hoort

    Grote bestanden (afbeeldingen, pdf's) sla je meestal beter op als bestand, met alleen het pad in de database.

Lukt het niet? Wij helpen

Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.

Aanvraag

Hulp aanvragen

Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.

Veelgestelde vragen

Vragen over dit probleem

Op gedeelde hosting mag ik de server niet aanpassen.

Vraag de hoster om een hogere waarde, of splits de import in kleinere delen (bijvoorbeeld met een dump die één rij per INSERT schrijft).

Hoe groot mag max_allowed_packet maximaal zijn?

De bovengrens is 1 GB. Kies een waarde die past bij de grootste rij of query die je echt nodig hebt.

Ik krijg 'server has gone away' bij een import.

Dat is vaak dezelfde oorzaak. Verhoog max_allowed_packet op server en client.