Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak ustawić strefę czasową bazy danych dla instancji AWS RDS?

Przed resztą mojej odpowiedzi, chciałbym zasugerować już teraz, że jeśli masz jakąkolwiek opcję zmiany aplikacji tak, aby używała UTC, zaoszczędzi ci to wiele smutku teraz i w przyszłości.

Jednak biorąc pod uwagę kontekst twojego pytania, zakładam, że nie jest to opcja i że dostosowujesz system zaprojektowany do używania MySQL w tradycyjnym środowisku serwerowym, w którym możesz po prostu zmienić strefę czasową i że istnieje logika kodu, która oczekuje tej strefy czasowej i nie można go łatwo dostosować do korzystania z UTC.

Ale jeśli naprawdę potrzebujesz go do przechowywania jako PST, czytaj dalej.

Masz rację, mySql domyślnie użyje strefy czasowej serwera do przechowywania znaczników czasu, jednak Twoje założenie, że instancje RDS mają ustawione strefy czasowe na podstawie regionu AWS, w którym są uruchamiane, jest nieprawidłowe - wszystkie instancje RDS są uruchamiane ze strefą czasową UTC, i ta konfiguracja może nie zmieniaj:

Tak więc jedyną opcją jest ustawienie strefy czasowej dla każdego połączenia aplikacji z instancją bazy danych na PST. Możesz użyć SET SESSION time_zone = 'PST' zapytanie do wykonania w każdym połączeniu, które aplikacja tworzy, wykonując dwa kroki znalezione tutaj :

  1. Utwórz następującą procedurę składowaną (UTC-8 to PST):

  2. Połącz się ze swoją instancją i uruchom następujące polecenie:

  3. Może być konieczne przyznanie opcji EXECUTE uprawnienia dla użytkowników, którzy będą łączyć się z bazą danych, w przeciwnym razie może pojawić się błąd połączenia:

Teraz każde zapytanie wykonywane na Twojej instancji RDS przez dowolnego klienta powinno używać PST bez modyfikowania logiki aplikacji i bez konieczności aktualizowania wcześniej zapisanych znaczników czasu w bazie danych.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hierarchiczna baza danych MySQL Closure Table - Jak wyciągnąć informacje we właściwej kolejności

  2. mysql - Jak obsłużyć wyszukiwanie zapytań ze znakami specjalnymi /(prawidłowy ukośnik) i \(odwrotny ukośnik)

  3. Praca z MyISAM w MySQL

  4. jak wstawić znaki Unicode do mysql za pomocą instrukcji insert?

  5. Echo/return dodaje spację przed zmienną