ข้อผิดพลาด Postgres“ ค่าพารามิเตอร์ไม่ถูกต้อง” 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'

ฉันได้รับข้อผิดพลาดนี้อยู่เรื่อย ๆ เมื่อพยายามย้ายไปยังฐานข้อมูล postgres ของฉัน ความช่วยเหลือจะได้รับการชื่นชมมาก!


2
คำสั่งSET time zone 'UTC'ทำงานในการติดตั้ง PostgreSQL 9.1.4 ของฉัน
Erwin Brandstetter

1
คุณใช้ PostgreSQL เวอร์ชันใด ไม่SET time zone 'UTC'ทำงานในคอนโซล psql สำหรับคุณ?
Mark Stosberg

ฉันใช้ 9.1.4 ฉันจะเข้าสู่ SET time zone 'UTC' ได้อย่างไร?
Stephen Nguyen

1
Jupitor = # SET ไทม์โซน 'UTC'; ข้อผิดพลาด: ค่าที่ไม่ถูกต้องสำหรับพารามิเตอร์ "TimeZone": "UTC"
Stephen Nguyen

1
Postgres (v.9.2.4) ไม่ชอบ UTC ให้ใช้ 'GMT' แทน
PhoebeB

คำตอบ:


135

ฉันมีปัญหาเดียวกันกับการใช้ Postgres.app จาก Heroku การรีบูตเครื่อง Mac ของฉันแก้ไขได้


2
แปลกจริงๆลองรีสตาร์ทแอพและตั้งค่าเขตเวลา ไม่ทำงานจากนั้นรีบูต mac และบูมไม่มีปัญหา
Steve

4
ฉันมีปัญหานี้หลังจากติดตั้ง postgress ใหม่ผ่านการชง การรีสตาร์ท Mac ช่วยได้
maicher

1
การรีสตาร์ท postgresql หลังจากการอัปเกรดแก้ไขปัญหา "pg_ctl restart"
Jerzyk

4
การรีสตาร์ท postgres ใช้ได้ผลกับฉันเช่นกัน ข้อผิดพลาดของฉันคือ ERROR: ค่าที่ไม่ถูกต้องสำหรับพารามิเตอร์ "TimeZone": "America / Chicago" แค่คิดว่าฉันจะเพิ่มความคิดเห็นนี้เพราะฉันเสียเวลาค้นหาข้อความแสดงข้อผิดพลาดนี้โดยไม่ทราบว่ามันเกิดขึ้นกับ UTC ด้วย
Colin D

1
ฉันไม่อยากจะเชื่อเลย แต่มันใช้งานได้จริง
Ryan Sandridge

78

การรีสตาร์ท postgresql ใช้งานได้

ในการรีสตาร์ทหากคุณติดตั้งโดยใช้ homebrew brew info postgresqlจะแจ้งให้คุณ:

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

8
ถูกต้องสิ่งนี้เกิดขึ้นเนื่องจาก PostgreSQL ได้รับการอัปเกรด แต่ไม่ได้รีสตาร์ท
Fred

ขอบคุณฉันจะแปลกใจถ้าการรีบูตเป็นคำตอบเดียวจริงๆ
sirdharma

6
สำหรับการชงคุณสามารถเริ่มต้นใหม่ได้ง่ายขึ้นด้วยbrew services restart postgresqlหรือถ้าคุณใช้เวอร์ชันเฉพาะเช่นbrew servces restart postgresql@9.6
JiuJitsuCoder

ถ้าฉันสามารถโหวตได้อีกครั้งฉันจะทำ เพิ่งพบข้อผิดพลาดนี้เป็นครั้งที่สองค้นหาและพบว่าลิงก์นี้เป็นสีม่วง การรีสตาร์ท postgres แก้ไขให้ฉันอีกครั้ง
Kingdon


15

ลองรีสตาร์ทเซิร์ฟเวอร์ ฉันอัปเดต Postgresql ผ่าน Homebrew แต่ลืมรีสตาร์ทเซิร์ฟเวอร์และพบปัญหาเดียวกันนี้ ฉันเชื่อว่าเป็นเพราะเวอร์ชันไคลเอนต์และเซิร์ฟเวอร์ไม่ตรงกัน psql เริ่มต้นด้วย:

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

10

จากคำตอบของ @ MathiasJแทนที่จะรีบูตเครื่องทั้งหมดฉันกลับวิ่ง

brew services restart postgresql@9.6

และหลังจากนั้นของฉันก็rake db:createทำงานได้อย่างสมบูรณ์แบบ


1
เคล็ดลับนี้ช่วยฉันในการรีบูต ขอบคุณ!
Tim Stewart

8

ฉันไม่คิดว่าฉันสมควรได้รับคะแนนใด ๆ สำหรับสิ่งนั้น แต่การรีบูต Postgres.app ของฉัน (ซึ่งดีกว่าการรีบูตระบบทั้งหมด) แก้ไขให้ฉันได้ แอปไม่ปรากฏบน Dock คุณสามารถค้นหาได้ในแถบนำทางที่ด้านบนของหน้าต่าง หวังว่ามันจะช่วยได้


4

ฉันก็มีปัญหานี้เช่นกัน

เข้าสู่ระบบฐานข้อมูลจากนั้นออก:

set time zone utc;

23
ไม่ได้ผลสำหรับฉัน ข้อผิดพลาด: ค่าที่ไม่ถูกต้องสำหรับพารามิเตอร์ "TimeZone": "
utc

4

สิ่งที่เกิดขึ้นจริงคือคุณอัปเกรดเซิร์ฟเวอร์ postgresql และล้างโฟลเดอร์เก่าของคุณ แต่คุณยังไม่ได้รีสตาร์ทเซิร์ฟเวอร์ postgresql เซิร์ฟเวอร์ค้นหาไฟล์เขตเวลาใน dir ที่ถูกลบ


4

หากไม่มีอะไรแก้ไขได้และคุณกำลังใช้ homebrewงานอยู่โอกาสที่คุณจะมีปัญหากับลิงก์ปัจจุบัน

สมมติว่าคุณPostgresติดตั้งสองเวอร์ชันตรวจสอบให้แน่ใจว่าคุณได้ยกเลิกการเชื่อมโยงแล้วเชื่อมโยงอีกครั้ง ในกรณีของฉันฉันต้องการให้ทั้งสองเวอร์ชันทำงานได้จึงจะทำงานpg_upgradeได้ ฉันมีpostgresql95และpostgresqlฉันก็ทำ:

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

นั่นทำให้ฉันทั้งสองทำงานในเวลาเดียวกัน หวังว่ามันจะเป็นประโยชน์เพราะฉันใช้เวลาพอสมควรในการคิดออก!


3

ในกรณีของฉันการรีสตาร์ทฐานข้อมูลไม่ได้ช่วยอะไร การอัปเดต tzdata ( apt-get install tzdata) เป็นเคล็ดลับสำหรับฉัน


2

เพียงแค่รีสตาร์ทฐานข้อมูลก็ช่วยได้ Homebrew อัปเดตการติดตั้ง Postgres ของฉันและฉันยังไม่ได้รีสตาร์ท


2

ฉันมีปัญหาคล้ายกันหลังจากอัปเดตข้อมูลโซนเวลานั่นคือการดาวน์โหลดฐานข้อมูล IANA และรวบรวมโดยใช้ zic

ปัญหาของฉันเกิดขึ้นจริงหลังจากรีสตาร์ท PostgreSQL ฉันได้รับinvalid value for parameter TimeZone: UTCและเริ่มต้นใหม่อีกครั้งไม่ได้ทำอะไรเพื่อแก้ปัญหา

ปรากฎว่าข้อมูลโซนเวลาของฉันยุ่งเหยิงอย่างสมบูรณ์หลังจากการอัปเดต ฉันมีลิงก์สัญลักษณ์ห้อยอยู่ใน/usr/share/zoneinfo. จากคอนโซล psql ฉันได้รับ:

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

ฉันลบลิงก์สัญลักษณ์ห้อยทั้งหมดดังกล่าว หลังจากทำสิ่งนี้อย่างน้อยฉันก็สามารถSELECT * FROM pg_timezone_namesทำงานได้ แต่ก็ยังมีinvalid value...ข้อผิดพลาดเหมือนเดิม

สิ่งที่แก้ปัญหาให้ฉันได้ในที่สุดคือการสร้าง symlink ใหม่:

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

หลังจากนี้SET time zone 'UTC'ทำงานได้อย่างถูกต้อง


1

เป็นเพียงข้อมูลอ้างอิงอย่างรวดเร็วสำหรับผู้ที่ไม่ได้ใช้ Postgres.app แต่จะเริ่ม psql จากบรรทัดคำสั่งหรือผ่าน launchctl คุณจะต้องปรับเปลี่ยนสิ่งต่อไปนี้สำหรับตำแหน่งที่คุณมีข้อมูล Postgres และไฟล์บันทึกอยู่ที่:

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

ฉันทำอย่างนี้ ฉันเคยเริ่ม / หยุด postgres จากเทอร์มินัลบน Mac และใช้งานได้ดี
sebasjimenez10

1

brew services restart postgresqlไม่ได้แก้ไขให้ฉัน ฉันแน่ใจว่าการรีบูตเครื่องจะใช้งานได้ แต่ฉันต้องการหาสาเหตุของปัญหา


ฉันเชื่อว่าปัญหานี้เกิดจากฉันเนื่องจากเวอร์ชัน postgresql .

ฉันpostgresqlใช้บริการชงแล้วและติดตั้งแล้วpostgresql@11ซึ่งยังคงpostgresqlทำงานอยู่ในบริการชงแม้ว่าฉันจะถอนการติดตั้งpostgresqlแล้วก็ตาม

ฉันแก้ไขสิ่งนี้โดยหยุดpostgresqlบริการชงแม้ว่าจะไม่ได้อยู่ในรายการbrew services listก็ตาม


ขั้นตอนในการผลิตซ้ำ:

$ brew install postgresql
$ brew services start postgresql

$ brew install postgresql@11
$ brew uninstall postgresql

$ brew services start postgresql@11

วิธีแก้ไข:

$ brew services stop postgresql

เปิดปัญหาเกี่ยวกับ Homebrew ที่ขอให้หยุดบริการของสูตรโดยอัตโนมัติเมื่อถอนการติดตั้ง


ปัญหาของผมก็คือผมได้ทำงานที่ติดตั้งแล้วpostgresql@9.5 postgresql@9.6แม้ว่าฉันจะถอนการติดตั้ง 9.5 แต่ก็ยังทำงานอยู่ การรีสตาร์ท 9.6 ไม่สามารถแก้ไขได้ การแก้ไขที่แท้จริงคือการหยุด 9.5 แล้วรีสตาร์ท 9.6 จากนั้นก็ใช้งานได้
Simon Kissane

การถอนการติดตั้ง postgresql ทั้งหมดอาจทำให้แย่ลงไปอีก
theKid

0

เห็นได้ชัดว่าสิ่งที่คล้ายกันนี้เกิดขึ้นกับ Java / JDBC ขณะเชื่อมต่อกับ Postgres

วิธีแก้ปัญหาคือบอกให้ JDBC รายงานเขตเวลาของผู้ใช้ที่ถูกต้องไปยัง Postgres ในขณะที่รับการเชื่อมต่อ

ดังนั้นการพูดถึงเขตเวลาของผู้ใช้อย่างชัดเจนในขณะที่เริ่มโปรแกรมจะช่วยได้:

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

บันทึก:

การเพิ่มสิ่งนี้ที่นี่เนื่องจากเป็นผลลัพธ์แรกใน Google สำหรับปัญหานี้เกี่ยวกับการเชื่อมต่อกับ Postgres!

ที่มา:

ความคิดเห็นนี้โดย Yuriy ในฟอรัมสนับสนุน Jira: https://community.atlassian.com/t5/Jira-questions/invalid-value-for-parameter-quot-TimeZone-quot-quot-US-Pacific/qaq-p/ 839426

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.