Est-il une limite maximale pour la valeur max_allowed_packet?
Je suis en cours d'exécution d'un site drupal. J'ai une erreur dans mon site avertissement à l'utilisateur: vous avez un paquet plus grand que 'max_allowed_packet octets de la requête. j'ai mis la valeur la plus élevée que 128M . Même après que la même erreur est signalée.
Quel est le problème ici?? Pourquoi n'est-il pas de travail ??
Est-il une limite maximale pour la valeur max_allowed_packet ?
- Possible cause commune: stackoverflow.com/questions/93128/...
- Êtes-vous sûr à 100% que vous avez mis en max_allowed_packet de 128 mégas? Habituellement, si un programme se plaint de quelque chose de ne pas être ensemble - cela indique généralement que l'utilisateur vissé vers le haut en quelque sorte. Comment avez-vous mis max_allowed_packts?
- Il semble que le changement n'est pas pris en compte. J'ai ajouté max_allowed_packet = 128M dans /etc/my.cnf de fichier. Mais lorsque je lance la commande "show variables like 'max_allowed_packet%' ;" de sortie est obtenu comme max_allowed_packet 1048576 j'ai essayé de le définir à partir de mysql, console mysql> set max_allowed_packet = 134216704; Mais quand j'ai redémarrer et vérifier de nouveau définir la variable est de retour à 1048576. Comment puis-je régler max_allowed_packet en permanence ??
Vous devez vous connecter pour publier un commentaire.
C'est le bord de saignement:
set global max_allowed_packet=1073741824;
Bien, il n'est probablement pas une bonne idée de lui que haut dans votre cas.
Comme une note de côté, j'ai vécu cette erreur avec la commande mysqldump, et de fixer ce plafond n'a pas aidé. Cela a fait le tour: $ mysqldump --max_allowed_packet=999M -u root -p table_name > table_name.sql
Souvent, cela peut être causé par les variables qui ne sont pas réellement l'effet - vous faire le changement de configuration, mais dans le mauvais mon.cnf, ou vous oubliez de rebond de l'application, etc.
Un moyen facile de vérifier l'exécution d'un instance mysql est de faire quelque chose comme cela dans un shell:
et entrez votre mot de passe root. Cela va vider toutes les variables (y compris les max_allowed_packet), et vous permettra de vérifier qu'il est configuré pour. S'il est défini à 128M et vous êtes toujours à l'étouffement, alors vous aurez besoin de l'augmenter - mais il est assez peu probable.
Modifier votre
/etc/my.cnf
, l'ajout de lamax_allowed_packet
variable.Il devrait ressembler à ceci:
Puis redémarrez votre serveur.
premier est que vous devez définir votre max_allowed_packet à 128M dans votre mon.cnf fichier.
pour le trouver, utiliser "localiser mon.cnf de la commande" dans votre ligne de commande.
le fichier devrait ressembler à ceci:
assurez-vous de décommenter(enlever le signe # devant la max_allowed_packet = 128M ligne)
et enfin, redémarrez votre sql à l'aide de la commande "/etc/init.d/mysqld restart"
cela devrait faire l'affaire. 😀
Essayez de définir
max_allowed_packet = 128M
comme dernière option en vertu de la[mysqld]
catégorie de mon.cnf.Quand je l'ai eu comme première option, il ne serait pas de travail, mais quand je l'ai eu comme la dernière option, il a travaillé! Je pense que c'est parce que certaines autres variables ont été au cours de l'équitation, du
max_allowed_packet
.Après un changement de mon.cnf, redémarrer MySQL à l'aide de
sudo service mysql restart
, et vérifiez le réglage à l'aide deSHOW VARIABLES LIKE 'max_allowed_packet';
Vous devez définir le paramètre dans toutes les sections qui s'appliquent à l'action que vous faites, et toujours dans la section [MySQLd]. Le réglage s'applique à la mémoire tampon des éléments que vous utilisez. Ainsi, en vertu de [MySQLd] est pour votre serveur MySQL proces de démon sur linux /service sur windows. Et si vous voulez faire un dump avec MySQLDump l'ajouter en tant que paramètre sur la ligne de commande ou faire une section [MySQLDump] dans vos mon.ini ainsi pour cet outil avec le même paramètre à la rendre permanente. Si vous souhaitez importer le dump de nouveau avec MySQL à nouveau l'utilisation de ce paramètre sur la ligne de commande ou faire une section [MySQL] avec de nouveau le même paramètre dans votre mon.ini pour faire le choix permanent pour cet outils aussi.
J'ai continué à parler de ma.ini parce que je suis sur windows, mais sous linux c'est mon.cnf de cours.
J'ai décidé de l'expliquer ici, car il m'a fallu âge de comprendre cela, car il n'est pas expliqué n'importe où. Dans les exemples cependant j'ai remarqué que certains ppl avoir le choix dans plusieurs sections, donc j'ai commencé à google plus et constaté une corrélation entre les sections et les actions qu'ils font. Maintenant, je n'ai jamais eu ce problème de plus et les paramètres de haut comme l'a mentionné 128M ici ne sont pas nécessaires dans la plupart des cas. Cependant, parce que c'est le maximum que le serveur va utiliser pour ce tampon si vous avez de la mémoire, il suffit de le mettre assez haut pour ne jamais avoir d'ennuis avec vos actions. La taille dont vous avez réellement besoin est un peu plus grand que le plus grand enregistrement dans votre base de données.
J'ai vécu cette erreur avec la commande mysqldump avec LONGBLOB champs, et le réglage de ce maximum n'a pas aidé. Cela a fait le tour: