Maison  >  Article  >  base de données  >  Comment gérer les fuseaux horaires dans MySQL ?

Comment gérer les fuseaux horaires dans MySQL ?

DDD
DDDoriginal
2024-11-06 20:15:03194parcourir

How do I manage time zones in MySQL?

Zones horaires MySQL

MySQL prend en charge une liste complète de fuseaux horaires, permettant aux développeurs de gérer et de manipuler les données de date et d'heure avec précision. La disponibilité des fuseaux horaires dans les paramètres MySQL dépend du système d'exploitation hôte sous-jacent, mais il existe des méthodes pour charger les informations sur les fuseaux horaires et accéder à une liste complète.

Pour établir l'heure locale pour une région spécifique, comme Calgary, les administrateurs peuvent charger les données de fuseau horaire à partir du système à l'aide de la commande suivante :

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

Une fois chargée, une liste des fuseaux horaires disponibles peut être consultée en exécutant :

USE mysql;
SELECT * FROM `time_zone_name`;

Cela affichera une liste complète de tous les fuseaux horaires reconnus dans le système.

Lorsque vous traitez les fuseaux horaires dans MySQL, il est crucial de noter que les informations sur les fuseaux horaires consomment environ 5 Mo d'espace de base de données. Pour décharger les données de fuseau horaire, exécutez les commandes suivantes et redémarrez MySQL :

TRUNCATE `time_zone` ;
TRUNCATE `time_zone_leap_second` ;
TRUNCATE `time_zone_name` ;
TRUNCATE `time_zone_transition` ;
TRUNCATE `time_zone_transition_type` ;

La suppression de ces tables doit être évitée car cela peut entraîner des problèmes.

Pour les mises à jour automatiques du fuseau horaire, assurez-vous que la connexion root est autorisée sans demande de mot de passe. Dans MySQL versions 5.6.6 et ultérieures, exécutez :

mysql_config_editor set --login-path=client --host=localhost --user=root --password

Pour les versions antérieures à 5.6.6, créez un fichier ~/.my.cnf et incluez les éléments suivants :

[client]
user=root
password=yourMysqlRootPW

Modifiez les autorisations des fichiers pour garantir la confidentialité. Un script crontab peut être ajouté pour les mises à jour quotidiennes des fuseaux horaires :

#!/bin/bash

if [ `find /usr/share/zoneinfo -mtime -1 | grep -v '\.tab' | wc -l` -gt 0 ]; then
    echo "Updating MySQL timezone info"

    mysql_tzinfo_to_sql /usr/share/zoneinfo 2>/dev/null | mysql -u root mysql
    echo "Done!\n"
fi

En implémentant ces techniques, les développeurs peuvent gérer efficacement les fuseaux horaires dans MySQL et garantir une gestion précise de la date et de l'heure dans leurs applications.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn