So ändern Sie die max_allowed_packet size

Ich habe ein Problem mit BLOB-Feldern in meiner MySQL-Datenbank - wenn ich Dateien hochlade, die größer als ca. 1 MB sind, erhalte ich die Fehlermeldung "Pakete, die größer als max_allowed_packet sind, sind nicht erlaubt".

Hier ist was ich versucht habe:

Im MySQL Query Browser habe ich eine show variables like 'max_allowed_packet' ausgeführt, was mir 1048576 ergab.

Dann führe ich die Abfrage set global max_allowed_packet=33554432 gefolgt von show variables like 'max_allowed_packet' aus - ich erhalte wie erwartet 33554432.

Aber wenn ich den MySQL-Server neu starte, ist er auf magische Weise wieder bei 1048576. Was mache ich hier falsch?

Bonusfrage: Ist es möglich, ein BLOB-Feld zu komprimieren?

Lösung

Ändern Sie die Datei my.ini oder ~/.my.cnf, indem Sie die einzelne Zeile unter dem Abschnitt [mysqld] oder [client] in Ihre Datei aufnehmen:

max_allowed_packet=500M

Starten Sie dann den MySQL-Dienst neu und Sie sind fertig.

Siehe die Dokumentation für weitere Informationen.

Kommentare (11)

Die Variable max_allowed_packet kann durch Ausführen einer Abfrage global gesetzt werden.

Wenn Sie sie jedoch nicht in der Datei "my.ini" ändern (wie von dragon112 vorgeschlagen), wird der Wert beim Neustart des Servers zurückgesetzt, selbst wenn Sie ihn global setzen.

So ändern Sie die maximal zulässige Paketgröße für alle auf 1 GB, bis der Server neu gestartet wird:

SET GLOBAL max_allowed_packet=1073741824;
Kommentare (10)

Dieser Fehler tritt auf, wenn Ihre Daten einen größeren als den eingestellten Wert enthalten.

Schreiben Sie einfach den Wert max_allowed_packed=500M auf. oder Sie können 500*1024k berechnen und das anstelle von 500M verwenden, wenn Sie wollen.

Starten Sie nun einfach MySQL neu.

Kommentare (2)