Mysql
 sql >> Base de données >  >> RDS >> Mysql

Réglage du paramètre de fuseau horaire par défaut sur RDS

Malheureusement, il n'est pas possible de définir le default_timezone dans les groupes de paramètres de la base de données RDS, votre tentative était donc déjà dans la bonne direction.

$ rds-describe-db-parameters default | grep "time_zone"
DBPARAMETER  default_time_zone                                                                   engine-default  string   static   false

Pour définir la valeur globale via SET GLOBAL, vous devez disposer du privilège SUPER qui ne vous est pas accordé en tant qu'utilisateur RDS.

La seule façon de définir le time_zone est sur une base par connexion

mysql> SET time_zone = timezone;

Sur mes machines, j'ai essayé US/Eastern avec succès mais j'ai une génération assez ancienne en cours d'exécution.

Pour connaître les fuseaux horaires dont vous disposez, connectez-vous à votre box

mysql -h yourboxhost.rds.amazonaws.com -u <youruser> -p

et saisissez

mysql> SELECT * FROM mysql.time_zone_name;

Vous devriez obtenir une liste des noms de fuseaux horaires installés et valides que vous pouvez définir sur votre instance

+----------------------------------------+--------------+
| Name                                   | Time_zone_id |
+----------------------------------------+--------------+
| Africa/Abidjan                         |            1 |
| Africa/Accra                           |            2 |
| Africa/Addis_Ababa                     |            3 |
| Africa/Algiers                         |            4 |
| Africa/Asmara                          |            5 |
| Africa/Asmera                          |            6 |
| Africa/Bamako                          |            7 |
| Africa/Bangui                          |            8 |
| Africa/Banjul                          |            9 |
| Africa/Bissau                          |           10 |
| Africa/Blantyre                        |           11 |
| Africa/Brazzaville                     |           12 |
| Africa/Bujumbura                       |           13 |
| Africa/Cairo                           |           14 |
etc...

Vous devez définir le fuseau horaire chaque fois que vous vous connectez à votre serveur de base de données

Par exemple, si vous utilisez l'extension php Mysqli, vous pouvez le faire

$mysqli = mysqli_init();
mysqli_options($mysqli,MYSQLI_INIT_COMMAND,"SET time_zone = 'Africa/Brazzaville'" );
mysqli_real_connect($mysqli,$host, $user, $pass,$dbName) or die ('Unable to connect');

Sinon, juste manuellement (en termes de laisser votre connecteur de base de données le faire), exécutez le SET time_zone = '<YOUR_DESIRED_TIMEZONE>' Requête juste après vous être connecté à votre base de données