MariaDB max_allowed_packet : définir la taille maximale des paquets de données
MariaDB max_allowed_packet est une variable système qui indique la taille maximale qu’un paquet de données peut atteindre lors de la communication entre la base de données et l’application. Les utilisateurs qui transfèrent de gros fichiers, de nombreux enregistrements ou de longues commandes SQL se heurtent rapidement aux limites.
Qu’est-ce que MariaDB max_allowed_packet ?
La variable système max_allowed_packet est l’un des paramètres de configuration les plus importants dans MariaDB et MySQL lorsqu’il s’agit de la stabilité et de la fiabilité des transferts de données. Elle définit la taille maximale d’un seul paquet de données qu’un client (par exemple une application ou un script SQL) envoie à un serveur MariaDB ou reçoit de celui-ci. La valeur par défaut préconfigurée varie selon le système, la distribution ou la version de MariaDB.
Un paquet de données dans MariaDB regroupe des instructions SQL et des contenus échangés par le serveur ou le client via le réseau. Si une commande SQL comme INSERT avec de nombreuses valeurs ou un BLOB (Binary Large Object), dépasse cette taille maximale, le serveur refuse l’exécution. Dans de tels cas, le message d’erreur suivant apparaît souvent :
ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytessqlCe paramètre protège le serveur contre les requêtes surdimensionnées qui peuvent potentiellement surcharger les ressources ou entraîner une instabilité. Il permet également aux administrateurs d’ajuster la taille permise aux exigences de leur environnement.
Le serveur comme le client ont chacun leur propre valeur max_allowed_packet. La transmission ne fonctionne que si les deux parties acceptent des paquets de la taille définie. Ainsi, si le serveur est configuré à 64 Mo, mais le client à 16 Mo seulement, l’envoi d’un paquet dépassant 16 Mo pourra échouer.
- vCPU aux coûts avantageux et cœurs dédiés performants
- Sans engagement pour plus de flexibilité
- Assistance par des experts 24h/24 et 7j/7 incluse
Syntaxe de la commande MariaDB max_allowed_packet
MariaDB permet à la fois des ajustements temporaires et permanents de max_allowed_packet. La syntaxe varie selon l’usage :
Changer temporairement max_allowed_packet pour une session
Si vous souhaitez ajuster la valeur de max_allowed_packet uniquement pour une seule connexion, modifiez-la temporairement au niveau de la session.
SET SESSION max_allowed_packet = 67108864;sqlCette commande augmente la limite à 64 mégaoctets, mais uniquement pour la connexion client actuelle.
Changer max_allowed_packet pour tout le serveur en cours d’exécution
Pour ajuster max_allowed_packet sur tout le serveur, définissez la valeur globalement.
SET GLOBAL max_allowed_packet = 67108864;sqlAinsi, MariaDB définit la valeur pour toutes les connexions futures. Les sessions existantes restent inchangées. Le paramètre reste jusqu’au redémarrage du serveur, et il convient aux ajustements permanents.
Cas d’usage typiques de max_allowed_packet
Dans de nombreux scénarios, la valeur par défaut de max_allowed_packet atteint rapidement ses limites. En particulier lors de processus intensifs en données ou d’opérations automatisées, un paramètre trop bas peut entraîner des erreurs ou des échecs. Les cas suivants représentent des situations typiques où un ajustement peut être utile :
- Importation de gros fichiers SQL : lorsque vous rétablissez une sauvegarde ou un dump de base de données contenant d’importantes quantités de données, la configuration par défaut peut rapidement être insuffisante. Une valeur plus élevée empêche les interruptions.
- Traitement de gros BLOB : les applications stockant des fichiers binaires (par exemple des PDF, des images ou des archives ZIP) dans la base de données nécessitent souvent une valeur
max_allowed_packetplus grande. - Nombreuses valeurs dans
INSERT: lorsque de grandes quantités de données sont écrites en une seule instruction, comme lors des processus ETL ou des téléchargements en masse, la taille du paquet augmente en conséquence. - Applications Web avec des formulaires dynamiques ou des téléchargements : les frameworks qui génèrent automatiquement de grandes instructions SQL atteignent souvent la limite de paquet sans ajustement.
N’augmentez pas inutilement max_allowed_packet dans MariaDB, car cela peut affecter la consommation de mémoire et la stabilité. Une valeur de 16M à 64M suffit pour la plupart des applications productives. Seuls des cas particuliers, comme les migrations de bases de données, nécessitent des valeurs plus grandes.
Exemple d’utilisation de max_allowed_packet
Supposons que vous exploitiez une application Web permettant aux utilisateurs de télécharger des fichiers PDF jusqu’à 64 Mo dans la base de données. Une valeur standard réglée à 4 Mo ne suffit pas. Pour exploiter l’application de manière fiable, ajustez la valeur.
Ouvrez le fichier /etc/mysql/my.cnf sous Linux ou my.ini si vous utilisez Windows. Ajoutez l’entrée suivante sous [mysqld] :
max_allowed_packet=64MtxtRedémarrez le serveur MariaDB :
sudo systemctl restart mariadbbashVérifiez la nouvelle valeur :
SHOW VARIABLES LIKE 'max_allowed_packet';sqlNous obtenons le résultat suivant :
+---------------------+----------+
| Variable_name | Value |
+---------------------+----------+
| max_allowed_packet | 67108864 |
+---------------------+----------+sqlL’application peut désormais traiter sans problème des paquets de données jusqu’à 64 Mo. Cela évite les erreurs, améliore la stabilité et permet un fonctionnement fluide même lors de transferts de données plus importants.
- Solutions flexibles, adaptées à vos besoins
- Architecture de niveau professionnel, gérée par des experts
- Hébergées en Europe, conformément aux normes de protection des données les plus strictes

