Błąd Postgres „nieprawidłowa wartość parametru” TimeZone „:” UTC „”

89
Jupitor$ bundle exec rake db:create db:migrate
APP_development already exists
rake aborted!
PG::Error: ERROR:  invalid value for parameter "TimeZone": "UTC"
: SET time zone 'UTC'

Ciągle otrzymuję ten błąd podczas próby migracji do mojej bazy danych postgres. Pomoc będzie bardzo mile widziane!

Stephen Nguyen
źródło
2
Polecenie SET time zone 'UTC'działa w mojej instalacji PostgreSQL 9.1.4.
Erwin Brandstetter
1
Jakiej wersji PostgreSQL używasz? Czy SET time zone 'UTC'działa dla ciebie w konsoli psql?
Mark Stosberg,
Używam 9.1.4, gdzie / jak wprowadzić strefę czasową „UTC”?
Stephen Nguyen
1
Jupitor = # USTAW strefę czasową 'UTC'; BŁĄD: nieprawidłowa wartość parametru „TimeZone”: „UTC”
Stephen Nguyen,
1
Postgres (v.9.2.4) nie lubi UTC, zamiast tego użyj „GMT”.
PhoebeB

Odpowiedzi:

135

Miałem ten sam problem podczas korzystania z Postgres.app z Heroku. Ponowne uruchomienie komputera Mac rozwiązało problem.

MathiasJ
źródło
2
Naprawdę dziwne, próbowałem ponownie uruchomić aplikację i ustawić strefę czasową. Żaden z nich nie działał, a następnie ponownie uruchomiono Maca i Boom, bez problemów.
Steve,
4
Miałem ten problem po ponownym zainstalowaniu postgressu przez brew. Ponowne uruchomienie Maca pomogło.
maicher
1
restart postgresql po aktualizacji naprawia problem "pg_ctl restart"
Jerzyk
4
ponowne uruchomienie postgres również zadziałało. Mój błąd to ERROR: nieprawidłowa wartość parametru „TimeZone”: „America / Chicago”. Pomyślałem, że dodam ten komentarz, ponieważ zmarnowałem czas na szukanie tego komunikatu o błędzie, nie zdając sobie sprawy, że dzieje się to również w przypadku UTC
Colin D,
1
Szczerze nie mogę w to uwierzyć, ale to faktycznie zadziałało.
Ryan Sandridge,
77

Ponowne uruchomienie postgresql działa.

Aby ponownie uruchomić, jeśli zainstalowałeś go za pomocą homebrew, brew info postgresqlpowie ci:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Michiel de Mare
źródło
8
Zgadza się, dzieje się tak, ponieważ PostgreSQL został zaktualizowany, ale nie został ponownie uruchomiony.
Fred
Dzięki, byłbym zaskoczony, gdyby ponowne uruchomienie było naprawdę jedyną odpowiedzią.
sirdharma
6
dla naparu możesz jeszcze łatwiej zrestartować z brew services restart postgresqllub jeśli używasz określonej wersji, coś w stylubrew servces restart [email protected]
JiuJitsuCoder
Gdybym mógł ponownie zagłosować za tym, zrobiłbym to. Po prostu napotkałem ten błąd po raz drugi, rozpocząłem wyszukiwanie i stwierdziłem, że ten link jest fioletowy. Ponowne uruchomienie postgres ponownie rozwiązało problem.
Kingdon
19

brew services restart postgresql

Ricardo Ruwer
źródło
15

Spróbuj ponownie uruchomić serwer. Zaktualizowałem Postgresql przez Homebrew, ale zapomniałem zrestartować serwer i mam ten sam problem. Wydaje mi się, że jest to spowodowane niezgodnością wersji klienta i serwera. psql zaczął się od:

$ psql
psql (9.1.4, server 9.1.2)
Type "help" for help.
Turadg
źródło
8

Myślę, że nie zasługuję na żadne punkty za to, ale ponowne uruchomienie mojej Postgres.app (co jest lepsze niż ponowne uruchomienie całego systemu) rozwiązało to za mnie. Aplikacja nie pojawia się w Docku, możesz ją znaleźć na pasku nawigacyjnym u góry okna. Mam nadzieję, że to i tak pomoże.

Flavio Wuensche
źródło
8

Opierając się na odpowiedzi @ MathiasJ , zamiast restartować całą moją maszynę, uruchomiłem

brew services restart postgresql@9.6

a mój kolejny rake db:createdziałał idealnie.

PJSCopeland
źródło
1
Ta wskazówka uratowała mi ponowne uruchomienie. Dzięki!
Tim Stewart
4

Ja też miałem ten problem.

Zaloguj się do bazy danych, a następnie wydaj:

set time zone utc;
Paul Meier
źródło
23
Nie działa dla mnie. BŁĄD: nieprawidłowa wartość parametru „TimeZone”: „utc”
Flavio Wuensche,
4

W rzeczywistości wydarzyło się to, że zaktualizowałeś serwer postgresql i wyczyściłeś stare foldery, ale nie zrestartowałeś serwera postgresql. Serwer szukał plików stref czasowych w usuniętym katalogu

Cristian Bica
źródło
4

Jeśli nic innego nie naprawia i akurat używasz homebrew , prawdopodobnie masz problemy z aktualnymi linkami.

Zakładając, że masz Postgreszainstalowane dwie wersje, odłącz, a następnie połącz ponownie. W moim przypadku potrzebowałem, aby dwie wersje działały, aby działać pg_upgrade. Miałem postgresql95i postgresqltak zrobiłem:

$ brew unlink postgresql
$ brew unlink postgresql95
$ brew link postgresql95
$ brew link --overwrite postgresql 

To sprawiło, że oboje pracowałem w tym samym czasie. Mam nadzieję, że okaże się to pomocne, ponieważ zajęło mi dużo czasu, zanim to rozgryzłem!

fagiani
źródło
3

W moim przypadku ponowne uruchomienie bazy danych nie pomogło. Aktualizacja tzdata ( apt-get install tzdata) załatwiła mi sprawę .

dusan
źródło
2

pomogło samo ponowne uruchomienie bazy danych. Homebrew zaktualizował moją instalację Postgres i jeszcze nie uruchomiłem ponownie.

głęboki płomień
źródło
2

Podobny problem miałem po zaktualizowaniu informacji o strefie czasowej, czyli pobraniu bazy danych IANA i skompilowaniu za pomocą zic.

Mój problem zaczął się po ponownym uruchomieniu PostgreSQL. Otrzymałem invalid value for parameter TimeZone: UTCi ponowne uruchomienie nie zrobiło nic, aby rozwiązać problem.

Okazuje się, że po aktualizacji informacje o mojej strefie czasowej zostały całkowicie pomieszane. Miałem zwisające dowiązania symboliczne /usr/share/zoneinfo. Z konsoli psql otrzymałem:

mydb=# SELECT * FROM pg_timezone_names;
ERROR:  could not stat "/usr/share/zoneinfo/PRC": No such file or directory

Usunąłem wszystkie takie wiszące linki symboliczne. Po wykonaniu tej czynności przynajmniej mogłem zabrać się SELECT * FROM pg_timezone_namesdo pracy, ale nadal mam to samoinvalid value... błąd.

Ostatnim rozwiązaniem dla mnie było utworzenie nowego linku symbolicznego:

cd /usr/share/zoneinfo
ln -s Etc/UTC UTC

Po tym SET time zone 'UTC'działało poprawnie.

Jong Bor Lee
źródło
1

Krótka informacja dla tych, którzy nie używają Postgres.app, ale uruchamiają psql z wiersza poleceń lub przez launchctl. Będziesz musiał dostosować następujące ustawienia dla miejsca, w którym masz swoje dane Postgres i pliki dziennika znajdujące się pod adresem:

pg_ctl stop
pg_ctl start -D /usr/local/pgsql/data/ -l /usr/local/pgsql/log/server.log
Joey
źródło
Zrobiłem dokładnie to. Jestem przyzwyczajony do uruchamiania / zatrzymywania postgresów z terminala na Macu i to działało dobrze
sebasjimenez10
1

brew services restart postgresqlnie naprawił dla mnie. Jestem pewien, że ponowne uruchomienie by zadziałało, ale chciałem znaleźć przyczynę problemu.


Wydaje mi się, że przyczyną problemu były dwie sprzeczne wersje postgresql.

Miałem już postgresqluruchomione z usługami parzenia, a następnie zainstalowałem, postgresql@11które pozostały postgresqldziałające w usługach parzenia nawet po odinstalowaniu postgresql.

Naprawiłem to, zatrzymując postgresqlusługę parzenia, mimo że nie była wymieniona w brew services list.


Kroki ku reprodukcji:

$ brew install postgresql
$ brew services start postgresql

$ brew install postgresql@11
$ brew uninstall postgresql

$ brew services start postgresql@11

Jak naprawić:

$ brew services stop postgresql

Otwarto problem z Homebrew żądający automatycznego zatrzymania usługi formuły po odinstalowaniu.

JBallin
źródło
Mój problem polegał na tym, że miałem [email protected]uruchomiony, a następnie zainstalowany [email protected]. Mimo że odinstalowałem 9.5, nadal działało. Ponowne uruchomienie 9.6 nie rozwiązało problemu. Właściwa poprawka polegała na zatrzymaniu 9.5, a następnie ponownym uruchomieniu 9.6, a potem to zadziałało.
Simon Kissane
Odinstalowanie wszystkich postgresql może jeszcze pogorszyć sytuację.
theKid
0

Najwyraźniej podobnie dzieje się z Javą / JDBC podczas łączenia się z Postgresem.

Rozwiązaniem jest poinformowanie JDBC, aby podczas uzyskiwania połączenia zgłaszało do Postgres poprawną strefę czasową użytkownika.

Tak więc wyraźnie wspomnij o strefie czasowej użytkownika podczas uruchamiania programu:

java -Duser.timezone=America/Los_Angeles com.example.MyMainClass

Uwaga:

Dodanie tego tutaj, ponieważ jest to pierwszy wynik w Google dotyczący tego problemu z połączeniem z Postgres!

Źródło:

Ten komentarz Yuriya na forum pomocy technicznej Jira: https://community.atlassian.com/t5/Jira-questions/invalid-value-for-parameter-quot-TimeZone-quot-quot-US-Pacific/qaq-p/ 839426

Miś
źródło