sql >> Database >  >> RDS >> Mysql

Aanpassen voor de standaard tijdzone-instelling op RDS

Helaas is het niet mogelijk om de default_timezone in de RDS DB ParameterGroups in te stellen, dus je poging was al in de goede richting.

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

Om de globale waarde via SET GLOBAL in te stellen, moet u het SUPER-privilege hebben dat niet aan u als RDS-gebruiker is verleend.

De enige manier om de tijdzone in te stellen is per verbinding

mysql> SET time_zone = timezone;

Op mijn machines heb ik US/Eastern met succes geprobeerd, maar ik heb een vrij oude generatie aan het werk.

Om de beschikbare tijdzones te bepalen, logt u in op uw box

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

en typ

mysql> SELECT * FROM mysql.time_zone_name;

U zou een lijst moeten krijgen met geïnstalleerde en geldige tijdzonenamen die u op uw instantie kunt instellen

+----------------------------------------+--------------+
| 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...

U moet elke keer dat u verbinding maakt met uw databaseserver de tijdzone instellen

Als u bijvoorbeeld de php Mysqli-extensie gebruikt, kunt u dit doen

$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');

Anders gewoon handmatig (in termen van laat uw databaseconnector het doen) de SET time_zone = '<YOUR_DESIRED_TIMEZONE>' uitvoeren Vraag direct nadat u verbinding heeft gemaakt met uw database



  1. Hoe LOG() werkt in MariaDB

  2. Hoe een Pandas Dataframe naar Django-model te schrijven?

  3. Twee SQL LEFT JOINS produceren een onjuist resultaat

  4. PDO-databaseklasse gebruiken zonder elke keer een nieuwe verbinding te maken?