Errore Postgres "valore non valido per il parametro" TimeZone ":" UTC ""


90
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'

Continuo a ricevere questo errore quando provo a migrare al mio database postgres. l'aiuto sarebbe molto apprezzato!


2
Il comando SET time zone 'UTC'funziona nella mia installazione di PostgreSQL 9.1.4.
Erwin Brandstetter

1
Quale versione di PostgreSQL stai usando? Fa SET time zone 'UTC'il lavoro in una console psql per te?
Mark Stosberg

Sto usando 9.1.4 dove / come inserisco il fuso orario "UTC"?
Stephen Nguyen

1
Jupitor = # SET fuso orario 'UTC'; ERRORE: valore non valido per il parametro "TimeZone": "UTC"
Stephen Nguyen

1
Postgres (v.9.2.4) non ama l'UTC, usa invece "GMT".
PhoebeB

Risposte:


135

Ho avuto lo stesso problema utilizzando Postgres.app da Heroku. Il riavvio del mio Mac lo ha risolto.


2
Davvero strano, ho provato a riavviare l'app e a impostare il fuso orario. Nessuno dei due ha funzionato, quindi riavviato Mac e boom, nessun problema.
Steve

4
Ho avuto questo problema dopo aver reinstallato postgress tramite brew. Il riavvio del Mac ha aiutato.
maicher

1
il riavvio di postgresql dopo l'aggiornamento risolve il problema "pg_ctl restart"
Jerzyk

4
il riavvio di postgres ha funzionato anche per me. Il mio errore era ERRORE: valore non valido per il parametro "TimeZone": "America / Chicago" però. Ho solo pensato di aggiungere questo commento perché ho perso tempo a cercare questo messaggio di errore non rendendomi conto che succede anche per UTC
Colin D

1
Onestamente non posso crederci, ma ha funzionato davvero.
Ryan Sandridge

78

Il riavvio di postgresql funziona.

Per riavviare se lo hai installato usando homebrew, brew info postgresqlti dirà di:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

8
Esatto, questo accade perché PostgreSQL è stato aggiornato ma non riavviato.
Fred

Grazie, sarei stato sorpreso se un riavvio fosse stato davvero l'unica risposta.
sirdharma

6
per brew puoi riavviare ancora più facilmente brew services restart postgresqlo se usi una versione specifica, qualcosa comebrew servces restart postgresql@9.6
JiuJitsuCoder

Se potessi votare di nuovo, lo farei. Mi sono imbattuto in questo errore una seconda volta, ho cercato e ho scoperto che questo collegamento era viola. Il riavvio di postgres mi ha risolto di nuovo.
Kingdon


15

Prova a riavviare il server. Ho aggiornato Postgresql tramite Homebrew ma ho dimenticato di riavviare il server e ho riscontrato lo stesso problema. Credo che sia dovuto alle versioni client e server non corrispondenti. psql è iniziato con:

$ psql
psql (9.1.4, server 9.1.2)
Type "help" for help.


8

Non penso di meritare alcun punto per questo, ma riavviare il mio Postgres.app (che è meglio che riavviare l'intero sistema) lo ha risolto per me. L'app non viene visualizzata sul Dock, puoi trovarla sulla barra di navigazione nella parte superiore della finestra. Spero che aiuti comunque.


4

Ho avuto anche questo problema.

Accedi al database quindi rilascia:

set time zone utc;

23
Non ha funzionato per me. ERRORE: valore non valido per il parametro "TimeZone": "utc"
Flavio Wuensche

4

Quello che è effettivamente successo è che hai aggiornato il server postgresql e ripulito le tue vecchie cartelle ma non hai riavviato il server postgresql. Il server ha cercato i file dei fusi orari nella directory eliminata


4

Se nient'altro si risolve e ti capita di utilizzare homebrew, è probabile che tu abbia problemi con i collegamenti correnti.

Supponendo che tu abbia due Postgresversioni installate, assicurati di scollegare e quindi collegare di nuovo. Nel mio caso, avevo bisogno che le due versioni funzionassero per funzionare pg_upgrade. Ho postgresql95e postgresqlcosì ho fatto:

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

Questo mi ha fatto lavorare entrambi allo stesso tempo. Spero che diventi utile perché mi ci è voluto un bel po 'per capirlo!


3

Nel mio caso il riavvio del database non ha aiutato. L'aggiornamento di tzdata ( apt-get install tzdata) ha fatto il trucco per me.


2

il solo riavvio del database ha aiutato. Homebrew ha aggiornato la mia installazione di Postgres e non l'ho ancora riavviato.


2

Ho avuto un problema simile dopo aver aggiornato le informazioni sul fuso orario, ovvero aver scaricato il database IANA e compilato utilizzando zic.

Il mio problema in realtà è iniziato dopo aver riavviato PostgreSQL. Ho ottenuto invalid value for parameter TimeZone: UTCe il riavvio di nuovo non ha fatto nulla per risolvere il problema.

Si scopre che le mie informazioni sul fuso orario erano completamente incasinate dopo l'aggiornamento. Avevo collegamenti simbolici pendenti in /usr/share/zoneinfo. Da una console psql, ho ottenuto:

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

Ho eliminato tutti questi collegamenti simbolici penzolanti. Dopo aver fatto ciò, almeno potrei mettermi SELECT * FROM pg_timezone_namesal lavoro, ma ho ancora lo stesso invalid value...errore.

Ciò che alla fine ha risolto il problema per me è stata la creazione di un nuovo collegamento simbolico:

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

Dopo questo, ha SET time zone 'UTC'funzionato correttamente.


1

Solo un rapido riferimento per coloro che non utilizzano Postgres.app, ma che avviano psql dalla riga di comando o tramite launchctl. Dovrai modificare quanto segue per dove hai i tuoi dati di Postgres e i file di registro in:

pg_ctl stop
pg_ctl start -D /usr/local/pgsql/data/ -l /usr/local/pgsql/log/server.log

Ho fatto esattamente questo. Sono abituato ad avviare / arrestare postgres dal terminale su Mac e questo ha funzionato perfettamente
sebasjimenez10

1

brew services restart postgresqlnon ha risolto per me. Sono sicuro che il riavvio avrebbe funzionato, ma volevo capire la causa del problema.


Credo che il problema sia stato causato da me a causa di due versioni contrastanti di postgresql.

Avevo già postgresqlfunzionato con i servizi di infusione e quindi installato postgresql@11che è rimasto in postgresqlesecuzione nei servizi di infusione anche dopo la disinstallazione postgresql.

Ho risolto il problema interrompendo il postgresqlservizio di infusione, anche se non era elencato in brew services list.


Passaggi per riprodurre:

$ brew install postgresql
$ brew services start postgresql

$ brew install postgresql@11
$ brew uninstall postgresql

$ brew services start postgresql@11

Come risolvere:

$ brew services stop postgresql

È stato aperto un problema su Homebrew che richiedeva l'arresto automatico del servizio di una formula al momento della disinstallazione.


Il mio problema era che avevo in postgresql@9.5esecuzione, quindi installato postgresql@9.6. Anche se avevo disinstallato la 9.5, era ancora in esecuzione. Il riavvio della 9.6 non lo ha risolto. La soluzione effettiva era arrestare 9.5, quindi riavviare 9.6, e quindi ha funzionato.
Simon Kissane

Disinstallare tutto il postgresql potrebbe peggiorare la situazione.
theKid

0

Apparentemente, una cosa simile accade anche con Java / JDBC durante la connessione a Postgres.

La soluzione è dire a JDBC di segnalare il fuso orario corretto dell'utente a Postgres mentre si ottiene la connessione.

Quindi, menzionare esplicitamente il fuso orario dell'utente durante l'avvio del programma aiuta:

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

Nota:

Aggiungendolo qui perché questo è il primo risultato su Google per questo problema con la connessione a Postgres!

Fonte:

Questo commento di Yuriy sul forum di supporto di Jira: https://community.atlassian.com/t5/Jira-questions/invalid-value-for-parameter-quot-TimeZone-quot-quot-US-Pacific/qaq-p/ 839426

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.