Mon application télécharge des mails sur IMAP et les stocke dans une base de données MySQL. Auparavant, je supportais la taille des mails jusqu'à 10 Mo et donc une colonne "mediumtext" pour stocker le contenu du mail était suffisante. Maintenant, je dois prendre en charge les e-mails jusqu'à 30 Mo. J'ai donc changé le type de données de la colonne en "largetext". Hier, un courrier de 25 Mo a été stocké. Après cela, chaque fois que j'exécute la commande mysqldump, une erreur se produit:
mysqldump: Erreur 2020: le paquet est plus grand que les octets 'max_allowed_packet' lors du vidage de la table `ib_mailbox_backup` à la ligne: 3369
La ligne 3369 contient le courrier de 25 Mo.
Dans la configuration MySQL, j'ai augmenté le 'max_allowed_packet' de 64M à 512M et il échoue toujours avec la même erreur. Exécution de la commande mysqldump sur la même machine où le serveur MySQL est exécuté. Comment résoudre ce problème?
--max_allowed_packet=512M
à votre commande mysqldump
.max_allowed_packet=512M
à [mysqldump]
section de votre my.cnf
(merci @Varun)Remarque: cela ne fonctionnera pas s'il n'est pas sous le [mysqldump]
section...
Certains de mes scripts ont cessé de fonctionner après une mise à niveau vers Debian 9 et MariaDB.
MariaDB sur Debian introduit un nouveau fichier de configuration spécifiquement pour les paramètres mysqldump (/etc/mysql/conf.d/mysqldump.cnf
). Si vous aviez défini un max_allowed_packet
<> 16M
dans votre standard /etc/mysql/my.cnf
auparavant, le nouveau fichier de configuration écraserait ce paramètre. Assurez-vous donc de vérifier ce nouveau fichier de configuration et de supprimer l'entrée ou de l'adapter à vos besoins.
Je ne sais pas si le changement a été introduit par l'échange de MySQL vers MariaDB ou si Debian a changé la façon dont les fichiers de configuration sont présentés dans la V9.
J'ai eu une erreur similaire et j'échouerais avec la taille de paquet 512M sur la ligne 0. C'était une table innodb qui était apparemment endommagée (mysqlcheck a montré OK). J'ai fini par recréer la table, puis cela a bien fonctionné avec une petite taille de paquet de seulement 128 Mo.