Résoudre les problèmes
Erreur de fuseaux horaires de GLPI avec MariaDB ou MySQL
Si, lors de la mise à jour ou de l'installation de GLPI, vous voyez le message suivant pendant la vérification des prérequis :
Datos de la zona horaria de la base de datos Activar el uso de zonas horarias. Las zonas horarias no parecen estar cargadas
L'avertissement confirme que GLPI ne peut pas activer les fuseaux horaires, mais c'est la version de GLPI qui détermine s'il manque seulement le chargement des données ou aussi une permission.
Pourquoi cette erreur se produit
GLPI 9.5 a introduit l'utilisation de TIMESTAMP pour gérer les fuseaux horaires. Dans tous les cas, MariaDB ou MySQL doit avoir chargé ses tables de fuseaux horaires.
- GLPI 10.0.20 ou ultérieur : l'utilisateur de l'application n'a pas besoin d'accéder à
mysql.time_zone_name. - GLPI antérieur à 10.0.20 : en plus des données chargées, il faut
SELECTsurmysql.time_zone_name.
Pourquoi vous ne pouvez pas le résoudre vous-même
Sur un hébergement mutualisé, la table mysql.time_zone_name appartient au système de la base de données, et non à votre compte. Cela signifie que :
- Vous n'avez pas les permissions d'administration pour charger les fuseaux horaires avec
mariadb-tzinfo-to-sqlou son aliasmysql_tzinfo_to_sql. - Vous ne pouvez pas exécuter
GRANTsur des tables système si une ancienne version de GLPI l'exige.
Ces opérations nécessitent des privilèges d'administration sur le serveur de base de données, pas forcément un compte nommé root.
Comment le résoudre
Pour que nous activions la prise en charge des fuseaux horaires pour votre installation de GLPI :
- Connectez-vous à l'espace client.
- Allez dans la section Aide et ouvrez un nouveau ticket.
- Indiquez que vous avez besoin d'activer la prise en charge des fuseaux horaires dans MariaDB/MySQL pour GLPI et précisez la version de GLPI et le nom de votre utilisateur de base de données, que vous trouverez dans
config/config_db.php. N'envoyez pas le mot de passe.
Notre équipe effectuera les configurations nécessaires et vous préviendra lorsque tout sera prêt pour que vous puissiez poursuivre la mise à jour.
Si vous mettez à jour depuis une ancienne version et que GLPI détecte des colonnes DATETIME, consultez aussi la commande officielle php bin/console glpi:migration:timestamps ; la migration peut être longue et doit être testée avec une sauvegarde vérifiée.
Consultez la documentation officielle de GLPI sur les fuseaux horaires. MySQL limite TIMESTAMP à janvier 2038 ; MariaDB a étendu cette plage à partir de la version 11.5. Tenez compte de la limite effective du serveur si l'application doit stocker des dates ultérieures.
Vérifier après l'intervention
Relancez la vérification des prérequis avec le même PHP et la même connexion que ceux utilisés par GLPI. Testez ensuite l'affichage et la modification d'une date avec le fuseau attendu. Changer le fuseau dans PHP ne charge pas les tables de fuseaux de MySQL et ne termine pas une migration de colonnes.
Si une migration des timestamps est demandée, conservez l'état initial et examinez sa durée et son résultat sur un clone. N'exécutez pas la commande plusieurs fois en parallèle et ne modifiez pas directement toutes les colonnes en SQL sans la procédure de cette version.
Cela peut aussi vous aider
- Erreur « Shop not found at line xxx in file classes/shop/Shop.php » Trouvez l'origine de Shop not found en vérifiant l'URL demandée, shop_url et la portée de PS_SHOP_DE...
- PrestaShopException : diagnostiquer Invalid address Repérez la référence exacte qui provoque Invalid address et ne nettoyez que les paniers sans command...
- PrestaShop, taille excessive de la table layered_filter_block Mesurez et videz le cache de la Recherche à facettes, distinguez-le de son index de prix et mettez à...
- Certaines bases de données n'apparaissent pas dans phpMyAdmin Vérifiez si la base appartient au compte et demandez la vérification des permissions ou de la carte...
Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.