Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Anpassen der Standard-Zeitzoneneinstellung auf RDS

Leider ist es nicht möglich, die default_timezone in den RDS DB ParameterGroups zu setzen, also war dein Versuch schon in die richtige Richtung.

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

Um den globalen Wert über SET GLOBAL festzulegen, benötigen Sie das SUPER-Privileg, das Ihnen als RDS-Benutzer nicht gewährt wird.

Die time_zone kann nur auf Verbindungsbasis eingestellt werden

mysql> SET time_zone = timezone;

Auf meinen Maschinen habe ich US/Eastern erfolgreich ausprobiert, aber ich habe eine ziemlich alte Generation am Laufen.

Um die Zeitzonen zu bestimmen, die Ihnen zur Verfügung stehen, melden Sie sich bei Ihrer Box an

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

und geben Sie

ein
mysql> SELECT * FROM mysql.time_zone_name;

Sie sollten eine Liste der installierten und gültigen Zeitzonennamen erhalten, die Sie für Ihre Instanz festlegen können

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

Sie müssen die time_zone jedes Mal einstellen, wenn Sie sich mit Ihrem Datenbankserver verbinden

Wenn Sie beispielsweise die php Mysqli-Erweiterung verwenden, können Sie dies tun

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

Andernfalls führen Sie einfach manuell (in Bezug auf Ihren Datenbankkonnektor) das SET time_zone = '<YOUR_DESIRED_TIMEZONE>' aus Fragen Sie direkt ab, nachdem Sie sich mit Ihrer Datenbank verbunden haben