sql >> Databasteknik >  >> RDS >> Mysql

Justerar för standardtidszoninställningen på RDS

Tyvärr är det inte möjligt att ställa in default_timezone i RDS DB ParameterGroups så ditt försök var redan i rätt riktning.

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

För att ställa in det globala värdet via SET GLOBAL måste du ha SUPER-privilegiet som inte beviljas dig som RDS-användare.

Det enda sättet att ställa in tidszonen är per anslutning

mysql> SET time_zone = timezone;

På mina maskiner har jag provat US/Eastern framgångsrikt men jag har en ganska gammal generation igång.

För att avgöra vilka tidszoner du har tillgängliga logga in i din box

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

och skriv

mysql> SELECT * FROM mysql.time_zone_name;

Du bör få en lista över installerade och giltiga tidszonsnamn som du kan ställa in på din instans

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

Du måste ställa in tidszonen varje gång du ansluter till din databasserver

Om du till exempel använder php Mysqli-tillägget kan du göra detta

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

Annars är det bara manuellt (när det gäller låt din databasanslutare göra det) exekvera SET time_zone = '<YOUR_DESIRED_TIMEZONE>' Fråga direkt efter att du har anslutit till din databas



  1. Hur man genererar infogningssatser från textfiler för SQL Server-tabell i SQL Server - SQL Server / TSQL självstudie del 106

  2. MySQL COUNT() och nollor

  3. Ett par snabba saker om PASS-feedback

  4. Får mysql-resultat från de senaste 30 dagarna