MariaDB max_allowed_packet – maximale Datenpaketgröße festlegen
MariaDB max_allowed_packet
ist eine Systemvariable, die angibt, wie groß ein einzelnes Datenpaket in der Kommunikation zwischen Datenbank und Anwendung sein darf. Wer große Dateien, viele Datensätze oder lange SQL-Befehle überträgt, stößt ohne eine Anpassung schnell an Grenzen.
Was ist MariaDB max_allowed_packet
?
Die Systemvariable max_allowed_packet
gehört zu den wichtigsten Konfigurationsparametern in MariaDB und MySQL, wenn es um die Stabilität und Zuverlässigkeit von Datenübertragungen geht. Sie definiert die maximale Größe eines einzelnen Datenpakets, das ein Client, wie zum Beispiel eine Anwendung oder ein SQL-Skript, an einen MariaDB-Server sendet oder von ihm empfängt. Der voreingestellte Standardwert unterscheidet sich je nach System, Distribution oder MariaDB-Version.
Ein Datenpaket in MariaDB bündelt SQL-Anweisungen und Inhalte, die der Server oder der Client über das Netzwerk austauscht. Wenn ein SQL-Befehl – beispielsweise ein großer INSERT
mit vielen Werten oder ein BLOB (Binary Large Object) – diese maximale Größe überschreitet, verweigert der Server die Ausführung. In solchen Fällen erscheint häufig die Fehlermeldung:
ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes
sqlDieser Parameter schützt den Server vor übergroßen Anfragen, die potenziell Ressourcen überlasten oder zu Instabilität führen können. Gleichzeitig ermöglicht er Administratorinnen und Administratoren, die zulässige Größe an die Anforderungen ihrer Umgebung anzupassen.
Sie sollten wissen, dass sowohl der Server als auch der Client ihren eigenen max_allowed_packet
-Wert haben. Die Übertragung funktioniert nur, wenn beide Seiten Pakete in der definierten Größe akzeptieren. Ist zum Beispiel der Server auf 64 Megabyte konfiguriert, der Client aber nur auf 16 Megabyte, kann ein Paket über 16 Megabyte trotzdem scheitern.
- Kostengünstige vCPUs und leistungsstarke dedizierte Cores
- Höchste Flexibilität ohne Mindestvertragslaufzeit
- Inklusive 24/7 Experten-Support
So sieht die Syntax von MariaDB max_allowed_packet
aus
MariaDB erlaubt sowohl temporäre als auch dauerhafte Anpassungen von max_allowed_packet
. Die Syntax variiert je nach Einsatzzweck:
max_allowed_packet
temporär für eine Sitzung ändern
Wenn Sie den Wert von max_allowed_packet
nur für eine einzelne Verbindung anpassen möchten, ändern Sie ihn temporär auf Sitzungsebene.
SET SESSION max_allowed_packet = 67108864;
sqlDieser Befehl erhöht das Limit auf 64 Megabyte, aber nur für die aktuelle Client-Verbindung.
max_allowed_packet
global (serverweit) zur Laufzeit ändern
Um max_allowed_packet
serverweit anzupassen, legen Sie den Wert global fest.
SET GLOBAL max_allowed_packet = 67108864;
sqlDamit setzt MariaDB den Wert für alle zukünftigen Verbindungen. Bestehende Sitzungen bleiben unverändert. Die Einstellung bleibt bis zum Neustart des Servers bestehen und eignet sich für dauerhafte Anpassungen im laufenden Betrieb.
Typische Anwendungsfälle von max_allowed_packet
In vielen Szenarien stößt der Standardwert von max_allowed_packet
schnell an seine Grenzen. Besonders bei datenintensiven Vorgängen oder automatisierten Abläufen kann ein zu niedrig gesetzter Wert zu Fehlern oder Abbrüchen führen. Die folgenden Anwendungsfälle stellen typische Situationen dar, in denen eine Anpassung sinnvoll ist:
- Import großer SQL-Dumps: Wenn Sie ein Backup oder Datenbank-Dump mit umfangreichen Daten einspielen, kann die Standardeinstellung schnell zu klein sein. Ein höherer Wert verhindert hier Abbrüche.
- Verarbeitung großer BLOBs: Anwendungen, die Binärdateien (zum Beispiel PDFs, Bilder oder ZIP-Archive) in der Datenbank speichern, benötigen oft ein größeres
max_allowed_packet
. - Viele Werte in einem
INSERT
: Wenn große Mengen an Daten in einem einzigen Statement geschrieben werden, etwa bei ETL-Prozessen oder Massenuploads, steigt die Paketgröße entsprechend. - Webanwendungen mit dynamischen Formularen oder Uploads: Frameworks, die automatisch große SQL-Statements generieren, erreichen ohne Anpassung häufig die Paketgrenze.
Erhöhen Sie in MariaDB max_allowed_packet
nicht unnötig hoch, da dies Auswirkungen auf den Speicherverbrauch und die Stabilität haben kann. Ein Wert von 16M
bis 64M
reicht für die meisten produktiven Anwendungen aus. Nur in Spezialfällen, zum Beispiel bei Datenbankmigrationen, sind größere Werte sinnvoll.
Beispiel für den Einsatz von max_allowed_packet
Angenommen, Sie betreiben eine Webanwendung, die Benutzerinnen und Benutzern erlaubt, PDF-Dateien bis zu 64 Megabyte in die Datenbank hochzuladen. Ein eingestellter Standardwert von 4 Megabyte reicht hierfür nicht aus. Um die Anwendung zuverlässig zu betreiben, passen Sie den Wert an.
Öffnen Sie die Datei /etc/mysql/my.cnf
in Linux oder my.ini
, wenn Sie Windows nutzen. Fügen Sie unter [mysqld]
folgenden Eintrag hinzu:
max_allowed_packet=64M
txtStarten Sie den MariaDB-Server neu:
sudo systemctl restart mariadb
bashÜberprüfen Sie den neuen Wert:
SHOW VARIABLES LIKE 'max_allowed_packet';
sqlWir erhalten das folgende Ergebnis:
+---------------------+----------+
| Variable_name | Value |
+---------------------+----------+
| max_allowed_packet | 67108864 |
+---------------------+----------+
sqlDie Anwendung kann nun Datenpakete bis zu 64 Megabyte problemlos verarbeiten. Das vermeidet Fehler, verbessert die Stabilität und erlaubt einen reibungslosen Betrieb auch bei größeren Datentransfers.
- IONOS Cloud-Partner: Die Experten für Ihren Datenbank-Betrieb
- Flexibel: Maßgeschneiderte Datenbank-Lösungen ganz auf Ihre Bedürfnisse
- Rechenzentren in Deutschland: Ihre Daten sind sicher