Développement et bases de données

Quelles variables MySQL peuvent être modifiées sur un hébergement géré

Vérifié le 4 min de lecture MySQL variables hébergement infogéré bases de données

MySQL distingue les variables globales, qui affectent tout le serveur, et les variables de session, qui ne s'appliquent qu'à une connexion. Dans une offre de cloud hosting géré, plusieurs comptes utilisent le même service MySQL : un compte ne dispose donc ni d'un accès root ni des privilèges administratifs nécessaires pour modifier les variables globales (SYSTEM_VARIABLES_ADMIN dans MySQL 8) et changer la configuration globale.

Portée des variables

Les buffers d'InnoDB, la limite totale de connexions et certains journaux sont gérés au niveau du serveur. max_allowed_packet a une valeur globale et une valeur de session, mais sa valeur de session est en lecture seule pour le serveur MySQL : elle ne s'augmente pas avec un SET SESSION depuis l'application. D'autres paramètres, comme certains modes SQL, délais d'attente ou jeux de caractères, peuvent avoir des valeurs globales et de session différentes.

Vous pouvez consulter les deux portées avec :

SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet';
SHOW SESSION VARIABLES LIKE 'max_allowed_packet';

Variables de session

Certaines applications peuvent exécuter SET SESSION à l'ouverture de chaque connexion si MySQL permet de modifier cette variable. Le changement ne dure que le temps de cette session et doit être configuré dans le code, le framework ou le connecteur de base de données.

N'utilisez pas SET GLOBAL comme solution : cela échouera faute de droits ou affecterait d'autres comptes. Ne confondez pas non plus les limites PHP, comme memory_limit ou upload_max_filesize, avec des variables MySQL.

Alternatives

  • Découpez les imports ou les requêtes volumineuses en lots.
  • Vérifiez la compatibilité du mode SQL ; ne désactivez pas des validations uniquement pour masquer des données ou des requêtes incorrectes. Si le projet exige un réglage de session autorisé, testez-le d'abord.
  • Corrigez les requêtes et les schémas qui consomment trop de mémoire ou de temps.
  • Utilisez des tâches en ligne de commande pour éviter les limites du serveur web ou de PHP, en gardant à l'esprit que cela ne modifie pas les limites de MySQL lui-même.
  • En cas de déconnexions pour inactivité, configurez la reprise de connexion et vérifiez quelle opération s'est terminée avant de la répéter. Une déconnexion ne prouve pas qu'une écriture a échoué.
  • Vérifiez si une version actuelle de l'application évite l'exigence globale.

Avant d'écarter la compatibilité, envoyez-nous le nom de la variable, la valeur requise et la documentation du logiciel. Nous pouvons vérifier sa portée et évaluer s'il existe une alternative par session ou un réglage sûr sur le serveur, mais un changement global ne peut pas être garanti.

Si l'exigence s'avère incompatible avec un environnement mutualisé et nécessite des privilèges administratifs permanents, il faudra une infrastructure sous votre propre contrôle, comme un VPS ou un serveur dédié. Hostsuar ne propose pas ces environnements actuellement ; consultez les différences entre un VPS et notre cloud hosting.

Un SET SESSION exécuté dans phpMyAdmin ne modifie que cette connexion ; il ne change pas les sessions de votre site ni les futures connexions d'un pool. Consultez la portée et les droits de chaque variable pour la version que vous utilisez et vérifiez la valeur depuis l'application elle-même.

Cela peut aussi vous aider

Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.