W tym artykule omówimy, jak zmienić strefę czasową MySQL na serwerze, aby dane przechowywane w bazach danych domyślnie korzystały z określonej strefy czasowej.
W większości przypadków Twoja lokalna strefa czasowa będzie inna niż strefa czasowa serwera MySQL, co może utrudnić Ci pracę z danymi w Twoich bazach danych. Wykonując poniższe czynności, możesz zaktualizować strefę czasową serwera MySQL, tak aby była zgodna z Twoją, aby ułatwić pracę z tymi danymi.
Ta zmiana wymagałaby dostępu roota do VPS (Virtual Private Server) lub planu hostingu serwera dedykowanego, lub możesz skontaktować się z naszym działem pomocy technicznej, aby to zmienić na swoim serwerze. Możesz także po prostu potrzebować wiedzieć, jak przekonwertować czas MySQL, który nie wymagałby uprawnień administratora i można to zrobić na serwerze współdzielonym.
Zmiana strefy czasowej w MySQL
- Zaloguj się do serwera przez SSH jako użytkownik root.
- Możesz wyświetlić bieżące ustawienia strefy czasowej MySQL za pomocą następującego polecenia z konsoli:
mysql -e "SELECT @@global.time_zone;"
Domyślnie powinieneś otrzymać coś podobnego do:+--------------------+ | @@global.time_zone | +--------------------+ | SYSTEM | +--------------------+
Dzieje się tak, ponieważ domyślnie strefa czasowa MySQL zostanie ustawiona na domyślny SYSTEM serwera czas. Jeśli chcesz zmienić strefę czasową całego serwera, możesz to zrobić, ustawiając strefę czasową w WHM. - Możesz zobaczyć SYSTEM serwera znacznik czasu za pomocą następującego polecenia:
date
Który odda:Mon Nov 26 12:50:07 EST 2012
- Aktualną sygnaturę czasową zgłaszaną przez serwer MySQL można wyświetlić za pomocą następującego polecenia:
mysql -e "SELECT NOW();"
Powinno to zwrócić aktualny znacznik czasu:+---------------------+ | NOW() | +---------------------+ | 2012-11-26 12:50:15 | +---------------------+
- Teraz możesz edytować plik konfiguracyjny MySQL za pomocą swojego ulubionego edytora tekstu:
vi /etc/my.cnf
Następnie dodaj następujący wiersz, aby zmienić z EST (GMT -5:00 ) na CST (GMT -6:00 ):default-time-zone = '-06:00'
Teraz zapisz /etc/my.cnf plik z nową wartością domyślną.
- Aby zmiana była aktywna, zrestartuj usługę MySQL za pomocą następującego polecenia:
service mysql restart
- Teraz, jeśli spróbujesz ponownie zobaczyć globalne ustawienie strefy czasowej za pomocą polecenia:
mysql -e "SELECT @@global.time_zone;"
Powinieneś teraz odzyskać swoje nowe ustawienie domyślne:+--------------------+ | @@global.time_zone | +--------------------+ | -06:00 | +--------------------+
- Powinieneś teraz zobaczyć, że NOW() funkcja została również zaktualizowana:
mysql -e "SELECT NOW();"
Powinno to zwrócić aktualny znacznik czasu:+---------------------+ | NOW() | +---------------------+ | 2012-11-26 11:50:15 | +---------------------+
Powinieneś teraz wiedzieć, jak zaktualizować ustawienia strefy czasowej serwera MySQL, aby upewnić się, że dane przechowywane w bazach danych są łatwe w obsłudze. Możesz także użyć nazwanych stref czasowych zamiast GMT -6:00 format, ale najpierw wymagałoby to załadowania tabel stref czasowych do mysql Baza danych. Więcej informacji na ten temat można znaleźć na stronie MySQL dotyczącej mysql_tzinfo_to_sql i ładowania tabel stref czasowych.