Mam kilka instalacji PostgreSQL 9.2, w których strefą czasową używaną przez PostgreSQL jest GMT, mimo że cały system to „Europa / Wiedeń”. Dokładnie sprawdziłem, postgresql.conf
czy nie zawiera timezone
ustawień, więc zgodnie z dokumentacją powinien wrócić do strefy czasowej systemu.
Jednak,
# su -s /bin/bash postgres -c "psql mydb"
mydb=# show timezone;
TimeZone
----------
GMT
(1 row)
mydb=# select now();
now
-------------------------------
2013-11-12 08:14:21.697622+00
(1 row)
Wszelkie wskazówki, skąd może pochodzić strefa czasowa GMT? Użytkownik systemu nie TZ
ustawił /etc/timezone
i /etc/timeinfo
wydaje się, że jest poprawnie skonfigurowany.
# cat /etc/timezone
Europe/Vienna
# date
Tue Nov 12 09:15:42 CET 2013
Wszelkie wskazówki są mile widziane, z góry dzięki!
źródło
postgresql.conf
wersji 9.2+ można określić, że strefa czasowa środowiska systemowego powinna być nadal automatycznie wykrywana?Znalazłem obejście tego.
po prostu utwórz dowiązanie symboliczne w / usr / share / zoneinfo / o nazwie czas lokalny (lub jakakolwiek inna nazwa), aby wskazywało na / etc / localtime
w ten sposób tworzysz ciąg linków, które ostatecznie wskazują strefę czasową twojego systemu.
Teraz weź nazwę utworzonego linku ( w moim przypadku czas lokalny ) i użyj go jako wartości elementu konfiguracji w postgresql.conf
uruchom ponownie postgresql i sprawdź czas za pomocą „SELECT now ();” i „pokaż strefę czasową”;
źródło