W tym samouczku postaramy się dokonać procesu pracy z strefami czasowymi w bazach danych, pokazując, jak ustawić strefę czasową w bazach danych MySQL. Chociaż nie będzie to w pełni rozwiązać sposób pracy z czasem, pomoże ci zrozumieć różne pojęcia o strefach czasowych w MySQL i innych relacyjnych bazach danych."
Odkryjmy.
MySQL Set Strefa czasowa - Metoda 1
Możesz użyć różnych metod do ustawiania i konfigurowania strefy czasowej na serwerze MySQL. Pierwszy to ustawienie strefy czasowej w zmiennej sesji.
Mysql zapewnia sesję @@.zmienna Time_zone, która przechowuje bieżącą stref czasową aktualnie działającej sesji.
Każda sesja, która łączy się z serwerem MySQL, jest przypisywana ustawieniem strefy czasowej sesji. Domyślnie wartość ta jest ustawiona na globalną wartość strefy czasowej.
Dlatego jeśli chcesz zmodyfikować strefę czasową bieżącej sesji bez wpływu na inne sesje podłączone do serwera, jest to zmienna, którą zmieniasz.
Możesz wyświetlić bieżącą strefę czasową dla swojej sesji, pobierając wartość przechowywaną przez tę zmienną. Przykładowe zapytanie pokazano poniżej:
Wybierz sesję @@.strefa czasowa;Uruchamianie powyższego zapytania powinno zwrócić dane wyjściowe jak pokazano:
W takim przypadku widzimy, że bieżąca sesja używa strefy czasowej zdefiniowanej w pliku konfiguracyjnym MySQL. Może być konieczne skonfigurowanie tabel informacji czasowych w MySQL, jeśli potrzebujesz przynieść rzeczywiste nazwy strefy czasowej.
Zachowaj ostrożność podczas przeprowadzania modyfikacji w stref czasowych systemów, szczególnie w systemach UNIX. Możesz dowiedzieć się więcej o konfiguracji strefy czasowej w poniższym zasobie:
https: // dev.Mysql.com/doc/refman/8.0/en/strefa strefy czasowej.html
Aby ustawić strefę czasową dla bieżącej sesji, możesz użyć polecenia Set, a następnie nazwy zmiennej i docelowej strefy czasowej.
Na przykład, aby ustawić bieżącą strefę czasową sesji na Los Angeles, możemy uruchomić zapytanie, jak pokazano:
Ustaw sesję @@.time_zone = 'America/los_angeles';Uwaga: Ustawienie strefy czasowej za pomocą nazwy strefy czasowej wymaga, aby system zawierał strefy czasowe. Domyślnie systemy podobne do UNIX zawierają pliki Zoneinfo używane do informacji o strefie czasu. W systemie Windows może być konieczne ręczne zainstalowanie informacji o strefie czasu dla swojego serwera.
Możesz także ustawić strefę czasową za pomocą wartości przesunięcia, jak pokazano:
Ustaw sesję @@.time_zone = '-7: 00';Na koniec możesz potwierdzić bieżącą strefę czasową sesji jako:
Wybierz sesję @@.strefa czasowa;Wynikowe wyjście:
MySQL Set Stref czas - Metoda 2
Drugą metodą, której możesz użyć do ustawienia strefy czasowej na serwerze MySQL, jest edycja globalnej zmiennej strefy czasowej.
W przeciwieństwie do sesji @@.Zmienna Time_Zone, która jest ograniczona do określonej sesji, @@ global.zmienna Time_zone jest przyjmowana na wszystkich sesjach.
Możesz sprawdzić globalną wartość strefy czasowej, jak pokazano:
Wybierz @@ global.strefa czasowa;Domyślnie wartość globalnej strefy czasowej jest ustawiona na system zgodnie z definicją w pliku konfiguracyjnym serwera.
Aby zmodyfikować wartość globalnej strefy czasowej, uruchom polecenie set jako:
set @@ global.time_zone = 'America/los_angeles';Powyższe stwierdzenie ustawia globalną wartość strefy czasowej na Los Angeles. Potwierdź za pomocą polecenia Wybierz:
Wybierz @@ global.strefa czasowa;Wyjście:
Możesz także ustawić stref czasu jako wartość przesunięcia UTC.
set @@ global.time_zone = '+3: 00';MySQL Set Stref czas - Metoda 3
Ostateczna metoda, której można użyć do modyfikacji strefy czasowej serwera, jest edycja pliku konfiguracyjnego serwera.
Otwórz plik konfiguracyjny MySQL (mój.CNF lub mój.INI) z ulubionym edytorem tekstu. W sekcji [Mysqld] zlokalizuj wpis:
Default Time-Zone = "Zmień tę wartość na docelową strefę czasową:
Default Time-Zone = 'America/LOS_ANGELES' 'Zapisz plik i uruchom ponownie serwer.
To powinno załadować nową strefę czasową.
Wniosek
W tym poście omówiliśmy różne metody i techniki w celu skonfigurowania strefy czasowej na serwerze MySQL na różnych poziomach.
Dziękuje za przeczytanie!!