GNU/Linux >> Tutoriels Linux >  >> Linux

SET GLOBAL max_allowed_packet ne fonctionne pas

Hmmmm .. Vous avez touché ce NOT-A-BUG, semble-t-il. :)

Si vous modifiez une variable système globale, la valeur est mémorisée et utilisée pour les nouvelles connexions jusqu'au redémarrage du serveur. (Pour rendre permanente une variable système globale, vous devez la définir dans un fichier d'options.) La modification est visible pour tout client qui accède à cette variable globale. Cependant, la modification affecte la variable de session correspondante uniquement pour les clients qui se connectent après la modification. La modification de la variable globale n'affecte pas la variable de session des clients actuellement connectés (pas même celle du client qui émet l'instruction SET GLOBAL).

Reportez-vous également à cela. Lisez l'explication de Shane Bester.

Vous devez modifier le fichier my.ini/my.cnf et redémarrer le serveur pour que le paramètre max_allowed_packet prenne effet.


Après avoir exécuté

set global max_allowed_packet=1000000000;

vous devez redémarrer mysql avant

SHOW VARIABLES LIKE 'max_allowed_packet'

affichera la nouvelle valeur.

J'ai ce problème lors du redémarrage de mysql via les préférences système de MAC OSX et la valeur n'a pas changé. Donc, en vous connectant à mysql via la console

mysql -u root -p

le changer puis redémarrer mySql semblait fonctionner. Cela aurait pu être une bizarrerie d'OS X.


Pour ceux qui ont une configuration MariaDb, le problème pourrait être que le max_allowed_packet variable est écrasée par un fichier de configuration appelé plus tard.

Dans mon cas, j'ai essayé d'importer une base de données et le serveur m'a répondu :ERREUR 2006 (HY000) à la ligne 736 :le serveur MySQL a disparu

J'ai découvert que le fichier :

/etc/mysql/mariadb.conf.d/50-server.cnf

est appelé plus tard

/etc/mysql/conf.d/mysql.cnf

J'ai essayé de changer continuellement dans le fichier "mysql.cnf" mais la valeur a été écrasée dans "50-server.cnf".

Donc la solution est d'entrer dans le fichier

/etc/mysql/mariadb.conf.d/50-server.cnf

et au lieu de "max_allowed_packet =16M" mettre la valeur souhaitée comme exemple"max_allowed_packet =64M"


Linux
  1. 2 façons de définir de manière permanente la variable $ PATH dans Ubuntu

  2. Comment définir la variable $Path sous Linux

  3. Définir la variable d'environnement avec un espace sous Linux

  4. LD_LIBRARY_PATH ne semble pas fonctionner

  5. chmod ne fonctionne pas

Comment configurer la réplication maître-esclave MySQL

Comment définir une variable d'environnement dans Windows

Comment définir des variables d'environnement dans MacOS

Comment définir une variable d'environnement dans Bash

Pourquoi mon lien symbolique ne fonctionne-t-il pas ?

Récupérer la base de données mysql - mysql/mysqldump donne la table <database>.<tablename> n'existe pas (1146)