sql >> Databáze >  >> RDS >> Mysql

Úprava pro výchozí nastavení časového pásma na RDS

Bohužel není možné nastavit default_timezone v RDS DB ParameterGroups, takže váš pokus byl již správným směrem.

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

Chcete-li nastavit globální hodnotu pomocí SET GLOBAL, musíte mít oprávnění SUPER, které vám jako uživateli RDS není uděleno.

Jediný způsob, jak nastavit časové pásmo, je na základě jednotlivých připojení

mysql> SET time_zone = timezone;

Na svých strojích jsem úspěšně vyzkoušel US/Eastern, ale běží mi docela stará generace.

Chcete-li zjistit časová pásma, která máte k dispozici, přihlaste se do svého boxu

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

a zadejte

mysql> SELECT * FROM mysql.time_zone_name;

Měli byste získat seznam nainstalovaných a platných názvů časových pásem, které můžete nastavit ve své instanci

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

Časové pásmo musíte nastavit pokaždé, když se připojíte k databázovému serveru

Pokud například používáte rozšíření php Mysqli, můžete to udělat

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

V opačném případě stačí ručně (pokud to udělá váš databázový konektor) spusťte SET time_zone = '<YOUR_DESIRED_TIMEZONE>' Dotaz ihned po připojení k databázi



  1. Základy správy datových souborů na SQL Serveru

  2. Instalace Oracle Fusion Middleware / WebLogic Server 11g

  3. Jak získat poslední den minulého týdne v SQL?

  4. Jak získat průměr s orderBy Desc v Laravel 5