Kesalahan Postgres "nilai tidak valid untuk parameter" 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'

Saya terus mendapatkan kesalahan ini ketika mencoba bermigrasi ke database postgres saya. bantuan akan sangat dihargai!

Stephen Nguyen
sumber
2
Perintah ini SET time zone 'UTC'berfungsi di instalasi PostgreSQL 9.1.4 saya.
Erwin Brandstetter
1
Versi PostgreSQL apa yang Anda gunakan? Apakah SET time zone 'UTC'bekerja di konsol psql untuk Anda?
Mark Stosberg
Saya menggunakan 9.1.4 di mana / bagaimana cara memasukkan SET zona waktu 'UTC'?
Stephen Nguyen
1
Jupitor = # SET zona waktu 'UTC'; KESALAHAN: nilai tidak valid untuk parameter "TimeZone": "UTC"
Stephen Nguyen
1
Postgres (v.9.2.4) tidak menyukai UTC, gunakan 'GMT' sebagai gantinya.
PhoebeB

Jawaban:

135

Saya memiliki masalah yang sama menggunakan Postgres.app dari Heroku. Mem-boot ulang Mac saya menyelesaikannya.

MathiasJ
sumber
2
Sangat aneh, coba mulai ulang aplikasi dan setel zona waktu. Tidak ada yang berfungsi, lalu boot ulang mac dan boom, tidak ada masalah.
Steve
4
Saya mengalami masalah ini setelah menginstal ulang postgress melalui brew. Memulai ulang mac membantu.
Maicher
1
memulai ulang postgresql setelah peningkatan perbaikan masalah "pg_ctl restart"
Jerzyk
4
memulai ulang postgres juga berhasil untuk saya. Kesalahan saya adalah ERROR: nilai tidak valid untuk parameter "TimeZone": "America / Chicago". Hanya berpikir saya akan menambahkan komentar ini karena saya membuang waktu mencari pesan kesalahan ini tanpa menyadari bahwa itu juga terjadi untuk UTC
Colin D
1
Sejujurnya aku tidak percaya, tapi ini benar-benar berhasil.
Ryan Sandridge
77

Memulai ulang karya postgresql.

Untuk memulai ulang jika Anda telah menginstalnya menggunakan homebrew, Anda brew info postgresqlakan diminta untuk:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Michiel de Mare
sumber
8
Itu benar, ini terjadi karena PostgreSQL telah ditingkatkan tetapi tidak dimulai ulang.
Fred
Terima kasih, saya akan terkejut jika reboot benar-benar satu-satunya jawaban.
sirdharma
6
untuk minuman Anda dapat memulai ulang lebih mudah dengan brew services restart postgresqlatau jika Anda menggunakan versi tertentu, sesuatu sepertibrew servces restart [email protected]
JiuJitsuCoder
Jika saya dapat meningkatkan ini lagi, saya akan melakukannya. Baru saja mengalami kesalahan ini untuk kedua kalinya, pergi mencari, dan menemukan tautan ini berwarna ungu. Memulai ulang postgres memecahkannya untuk saya lagi.
Kingdon
19

brew services restart postgresql

Ricardo Ruwer
sumber
15

Coba mulai ulang server. Saya memperbarui Postgresql melalui Homebrew tetapi lupa untuk me-restart server dan mendapat masalah yang sama. Saya yakin itu karena versi klien dan server tidak cocok. psql dimulai dengan:

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

Berdasarkan jawaban @ MathiasJ , alih-alih me-reboot seluruh mesin saya, saya berlari

brew services restart postgresql@9.6

dan selanjutnya saya rake db:createbekerja dengan sempurna.

PJSCopeland
sumber
1
Tip ini menyelamatkan saya dari reboot. Terima kasih!
Tim Stewart
8

Saya tidak berpikir saya pantas mendapatkan poin untuk itu tetapi me-reboot Postgres.app saya (yang lebih baik daripada me-reboot seluruh sistem) menyelesaikannya untuk saya. Aplikasi tidak muncul di Dock, Anda dapat menemukannya di bilah navigasi di bagian atas jendela Anda. Semoga ini membantu.

Flavio Wuensche
sumber
4

Saya juga punya masalah ini.

Login ke database lalu terbitkan:

set time zone utc;
Paul Meier
sumber
23
Tidak berhasil untuk saya. KESALAHAN: nilai tidak valid untuk parameter "TimeZone": "utc"
Flavio Wuensche
4

Apa yang sebenarnya terjadi adalah Anda meningkatkan server postgresql dan membersihkan folder lama Anda tetapi Anda belum memulai ulang server postgresql Anda. Server mencari file zona waktu di direktori yang dihapus

Cristian Bica
sumber
4

Jika tidak ada yang diperbaiki dan Anda kebetulan menggunakannya homebrew, kemungkinan Anda mengalami masalah dengan tautan saat ini.

Dengan asumsi Anda menginstal dua Postgresversi, pastikan Anda membatalkan tautan lalu menautkan lagi. Dalam kasus saya, saya membutuhkan dua versi berfungsi agar dapat berjalan pg_upgrade. Saya punya postgresql95dan postgresqljadi saya lakukan:

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

Itu membuat saya bekerja pada waktu yang sama. Semoga bermanfaat karena saya butuh waktu lama untuk mengetahuinya!

fagiani
sumber
3

Dalam kasus saya, memulai ulang database tidak membantu. Memperbarui tzdata ( apt-get install tzdata) berhasil bagi saya.

dusan
sumber
2

hanya restart database membantu. Homebrew memperbarui instalasi Postgres saya dan saya belum memulai ulang.

deepflame
sumber
2

Saya mengalami masalah serupa setelah memperbarui informasi zona waktu, yaitu mengunduh database IANA dan mengkompilasi menggunakan zic.

Masalah saya sebenarnya dimulai setelah memulai ulang PostgreSQL. saya mendapatkaninvalid value for parameter TimeZone: UTC dan memulai ulang lagi tidak melakukan apa pun untuk menyelesaikan masalah.

Ternyata informasi zona waktu saya benar-benar kacau setelah pembaruan. Saya memiliki tautan simbolis yang menggantung /usr/share/zoneinfo. Dari konsol psql, saya mendapat:

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

Saya menghapus semua symlink yang menjuntai seperti itu. Setelah melakukan ini, setidaknya saya bisa mulai SELECT * FROM pg_timezone_namesbekerja, tetapi tetap mendapatkan yang samainvalid value... kesalahan yang .

Apa yang akhirnya memecahkan masalah saya adalah membuat symlink baru:

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

Setelah ini, SET time zone 'UTC'bekerja dengan benar.

Jong Bor Lee
sumber
1

Hanya referensi cepat bagi mereka yang tidak menggunakan Postgres.app, tapi yang memulai psql dari baris perintah atau melalui launchctl. Anda harus menyesuaikan yang berikut ini untuk tempat Anda memiliki data Postgres dan file log yang berada di:

pg_ctl stop
pg_ctl start -D /usr/local/pgsql/data/ -l /usr/local/pgsql/log/server.log
Joey
sumber
Saya melakukan persis seperti ini. Saya terbiasa memulai / menghentikan postgres dari terminal di Mac dan ini bekerja dengan baik
sebasjimenez10
1

brew services restart postgresqltidak memperbaiki untuk saya. Saya yakin me-reboot akan berhasil, tetapi saya ingin mencari tahu penyebab masalahnya.


Saya yakin masalah ini disebabkan oleh saya karena dua versi yang bertentangan dari postgresql .

Saya sudah postgresqlmenjalankan layanan brew, dan kemudian menginstal postgresql@11yang tetap postgresqlberjalan di layanan brew bahkan setelah saya mencopot pemasangannya postgresql.

Saya memperbaikinya dengan menghentikan layanan pembuatan postgresqlbir, meskipun tidak terdaftar di brew services list.


Langkah-langkah untuk mereproduksi:

$ brew install postgresql
$ brew services start postgresql

$ brew install postgresql@11
$ brew uninstall postgresql

$ brew services start postgresql@11

Bagaimana cara memperbaiki:

$ brew services stop postgresql

Membuka masalah pada Homebrew yang meminta agar layanan formula secara otomatis dihentikan saat uninstall.

JBallin
sumber
Masalah saya adalah saya [email protected]menjalankan, lalu menginstal [email protected]. Meskipun saya telah mencopot pemasangan 9.5, itu masih berjalan. Memulai ulang 9.6 tidak memperbaikinya. Perbaikan sebenarnya adalah menghentikan 9.5, lalu memulai ulang 9.6, dan kemudian ini berhasil.
Simon Kissane
Menghapus semua postgresql dapat memperburuk ini.
theKid
0

Rupanya, hal serupa juga terjadi dengan Java / JDBC saat menghubungkan ke Postgres.

Solusinya adalah memberi tahu JDBC untuk melaporkan zona waktu pengguna yang benar ke Postgres saat mendapatkan koneksi.

Jadi, sebutkan secara eksplisit zona waktu pengguna saat memulai program membantu:

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

catatan:

Menambahkan ini di sini karena ini merupakan hasil pertama di Google untuk masalah ini terkait koneksi ke Postgres!

Sumber:

Komentar Yuriy ini di forum dukungan Jira: https://community.atlassian.com/t5/Jira-questions/invalid-value-for-parameter-quot-TimeZone-quot-quot-US-Pacific/qaq-p/ 839426

Teddy
sumber