Avant MySQL version 4.1.3, vous pouviez modifier le fuseau
horaire du serveur avec l'option
--timezone=timezone_name
de
mysqld_safe. Vous pouvez aussi le modifier
avec la variable d'environnement TZ
avant de
lancer mysqld.
Les valeurs autorisées pour --timezone
et
TZ
dépendent du système d'exploitation.
Consultez la documentation de votre système d'exploitation pour
connaître ces valeurs.
Depuis MySQL 4.1.3, le serveur entretien différentes configurations de fuseau horaire :
Le fuseau horaire du système. Lorsque le serveur se lance,
il tente de déterminer le fuseau horaire de la machine
serveur, et l'utilise dans la variable système
system_time_zone
.
Le fuseau horaire courant. La variable système globale
time_zone
indique le fuseau horaire
courant du serveur. La valeur initiale est
'SYSTEM'
, qui indique que le serveur est
dans le même fuseau horaire que le serveur. La valeur
initiale peut être spécifiée explicitement avec l'option
--default-time-zone=
.
Si vous avez les droits de timezone
SUPER
, vous
pouvez modifier la valeur de cette variable durant
l'exécution du serveur, avec cette commande :
mysql> SET GLOBAL time_zone = timezone
;
Fuseau horaire de connexion. Chaque client qui se connecte
peut disposer de sa propre configuration de fuseau horaire,
grâce à la variable de session
time_zone
. Initialement, elle prend la
valeur de time_zone
mais peut être
redéfinie avec la commande suivante :
mysql> SET time_zone = timezone
;
La valeur courante du fuseau horaire global et de session est accessible avec cette commande :
mysql> SELECT @@global.time_zone, @@session.time_zone;
Les valeurs de timezone
peuvent être
fournies sous forme de chaînes de caractères, indiquant un
décalage par rapport au temps UTC, comme
'+10:00'
ou '-6:00'
. Si la
table de fuseau horaire de la base mysql
a
été créée et remplie, vous pouvez aussi utiliser les noms de
fuseaux, comme 'Europe/Paris'
ou
'Canada/Eastern'
, ou
'MET'
. La valeur 'SYSTEM'
indique le fuseau horaire du système. Les noms de fuseau
horaire sont insensibles à la casse.
La procédure d'installation de MySQL crée la table des fuseaux
horaires, mais ne la remplit pas. Vous devez le faire
manuellement. Si vous passez en MySQL version 4.1.3 ou plus
récent depuis une version plus récente, il est important de
créer ces tables en mettant à jour la base
mysql
. Utilsiez les instructions de
Section 2.6.7, « Mise à jour des tables de droits ».)
Note : actuellement, la table des fuseaux horaires peut être remplie uniquement sous Unix. Le problème sera bientôt réglé pour Windows.
Le programme mysql_tzinfo_to_sql sert à
charger la table des fuseaux horaires. Vous devez connaître le
nom du dossier dans lequel votre système d'exploitation
enregistre les fuseaux horaires. Typiquement, c'est
/usr/share/zoneinfo
. Indiquez cette valeur
au programme en ligne de commande
mysql_tzinfo_to_sql, et passez le résultat
du programme au client mysql. Par exemple :
shell> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
mysql_tzinfo_to_sql lit les fichiers de fuseau horaire de votre système et génère des requêtes SQL. Le client mysql traite ces commandes et les charge dans la base de données.
mysql_tzinfo_to_sql peut aussi charger un fichier de fuseau horaire, et générer les secondes additionnelles.
Pour charger un fichier de fuseaux horaires
tz_file
qui correspond au fuseau
appelé tz_name
, appelez le programme
mysql_tzinfo_to_sql comme ceci :
shell> mysql_tzinfo_to_sql tz_file
tz_name
| mysql -u root mysql
SI votre système doit prendre en compre les secondes
additionnelles, initialisez les informations de secondes
additionnelles comme ceci, où
tz_file
est le nom de votre fichier
de fuseau :
shell> mysql_tzinfo_to_sql --leap tz_file
| mysql -u root mysql
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.