Lỗi postgres "giá trị không hợp lệ cho thông số" 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'

Tôi tiếp tục gặp lỗi này khi cố gắng di chuyển sang cơ sở dữ liệu postgres của mình. Trợ giúp sẽ được nhiều đánh giá cao!


2
Lệnh SET time zone 'UTC'hoạt động trong cài đặt PostgreSQL 9.1.4 của tôi.
Erwin Brandstetter

1
Bạn đang sử dụng phiên bản PostgreSQL nào? Có SET time zone 'UTC'hoạt động trong bảng điều khiển psql cho bạn không?
Mark Stosberg

Tôi đang sử dụng 9.1.4 ở đâu / làm cách nào để nhập SET múi giờ 'UTC'?
Stephen Nguyen,

1
Jupitor = # ĐẶT múi giờ 'UTC'; LỖI: giá trị không hợp lệ cho thông số "TimeZone": "UTC"
Stephen Nguyen

1
Postgres (v.9.2.4) không thích UTC, hãy sử dụng 'GMT' để thay thế.
PhoebeB

Câu trả lời:


135

Tôi đã gặp vấn đề tương tự khi sử dụng ứng dụng Postgres.app từ Heroku. Khởi động lại máy Mac của tôi đã giải quyết được nó.


2
Thực sự kỳ lạ, đã thử khởi động lại ứng dụng và đặt múi giờ. Không hoạt động, sau đó khởi động lại mac và bùng nổ, không có vấn đề gì.
Steve

4
Tôi đã gặp sự cố này sau khi cài đặt lại postgress qua brew. Khởi động lại mac đã giúp.
maicher

1
khởi động lại postgresql sau khi nâng cấp bản vá phát hành "pg_ctl restart"
Jerzyk

4
khởi động lại postgres cũng làm việc cho tôi. Tuy nhiên, lỗi của tôi là LỖI: giá trị không hợp lệ cho thông số "TimeZone": "America / Chicago". Chỉ cần nghĩ rằng tôi muốn thêm nhận xét này bởi vì tôi lãng phí thời gian tìm kiếm cho thông báo lỗi này không nhận ra rằng nó cũng sẽ xảy ra cho tính theo giờ UTC
Colin D

1
Tôi thực sự không thể tin được, nhưng điều này thực sự đã hiệu quả
Ryan Sandridge

77

Khởi động lại postgresql hoạt động.

Để khởi động lại nếu bạn đã cài đặt nó bằng homebrew, brew info postgresqlnó sẽ cho bạn biết:

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

8
Đúng vậy, điều này xảy ra vì PostgreSQL đã được nâng cấp nhưng không được khởi động lại.
Fred

Cảm ơn, tôi sẽ rất ngạc nhiên nếu khởi động lại thực sự là câu trả lời duy nhất.
sirdharma

6
cho brew bạn có thể khởi động lại dễ dàng hơn với brew services restart postgresqlhoặc nếu bạn sử dụng một phiên bản đặc biệt, một cái gì đó giống nhưbrew servces restart postgresql@9.6
JiuJitsuCoder

Nếu tôi có thể ủng hộ điều này một lần nữa, tôi sẽ. Chỉ gặp lỗi này lần thứ hai, đi tìm kiếm và thấy liên kết này có màu tím. Khởi động lại postgres đã giải quyết nó một lần nữa cho tôi.
Kingdon


15

Thử khởi động lại máy chủ. Tôi đã cập nhật Postgresql thông qua Homebrew nhưng quên khởi động lại máy chủ và gặp sự cố tương tự. Tôi tin rằng đó là do phiên bản máy khách và máy chủ không khớp. psql bắt đầu bằng:

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

8

Tôi không nghĩ mình xứng đáng với bất kỳ điểm nào cho điều đó nhưng việc khởi động lại ứng dụng Postgres.app của tôi (tốt hơn là khởi động lại toàn bộ hệ thống) đã giải quyết được điều đó cho tôi. Ứng dụng không hiển thị trên Dock, bạn có thể tìm thấy nó trên thanh điều hướng ở đầu cửa sổ của mình. Hy vọng nó sẽ giúp anyway.



4

Tôi cũng đã từng gặp phải vấn đề này.

Đăng nhập vào cơ sở dữ liệu sau đó phát hành:

set time zone utc;

23
Không hiệu quả với tôi. LỖI: giá trị không hợp lệ cho thông số "TimeZone": "utc"
Flavio Wuensche

4

Điều thực sự đã xảy ra là bạn đã nâng cấp máy chủ postgresql và dọn dẹp các thư mục cũ nhưng bạn chưa khởi động lại máy chủ postgresql của mình. Máy chủ đã tìm kiếm các tệp múi giờ trong dir đã xóa


4

Nếu không có gì khác được sửa chữa và bạn tình cờ sử dụng homebrew, rất có thể bạn đang gặp sự cố với các liên kết hiện tại.

Giả sử bạn đã Postgrescài đặt hai phiên bản, hãy đảm bảo rằng bạn hủy liên kết và sau đó liên kết lại. Trong trường hợp của tôi, tôi cần hai phiên bản hoạt động để chạy pg_upgrade. Tôi có postgresql95postgresqlvì vậy tôi đã làm:

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

Điều đó khiến tôi vừa làm việc cùng một lúc. Hy vọng nó sẽ hữu ích vì tôi đã mất một khoảng thời gian để tìm ra điều đó!


3

Trong trường hợp của tôi, việc khởi động lại cơ sở dữ liệu không giúp được gì. Cập nhật tzdata ( apt-get install tzdata) đã giúp tôi.


2

chỉ cần khởi động lại cơ sở dữ liệu đã giúp. Homebrew đã cập nhật cài đặt Postgres của tôi và tôi vẫn chưa khởi động lại.


2

Tôi gặp sự cố tương tự sau khi cập nhật thông tin múi giờ, đó là tải xuống cơ sở dữ liệu IANA và biên dịch bằng zic.

Sự cố của tôi thực sự bắt đầu sau khi khởi động lại PostgreSQL. Tôi đã nhận invalid value for parameter TimeZone: UTCvà khởi động lại lần nữa không giải quyết được vấn đề gì.

Hóa ra thông tin múi giờ của tôi đã hoàn toàn bị xáo trộn sau khi cập nhật. Tôi đã có các liên kết tượng trưng lủng lẳng trong /usr/share/zoneinfo. Từ bảng điều khiển psql, tôi nhận được:

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

Tôi đã xóa tất cả các liên kết tượng trưng lơ lửng như vậy. Sau khi làm điều này, ít nhất tôi có thể đi SELECT * FROM pg_timezone_nameslàm, nhưng vẫn gặp invalid value...lỗi tương tự .

Điều cuối cùng đã giải quyết được vấn đề đối với tôi là tạo một liên kết biểu tượng mới:

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

Sau đó, SET time zone 'UTC'hoạt động chính xác.


1

Chỉ là một tham chiếu nhanh cho những người không sử dụng Postgres.app, nhưng bắt đầu psql từ dòng lệnh hoặc thông qua khởi chạy. Bạn sẽ cần điều chỉnh những điều sau cho nơi bạn có dữ liệu Postgres và tệp nhật ký của mình tại:

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

Tôi đã làm chính xác điều này. Tôi đang sử dụng để bắt đầu / postgres thẳng từ nhà ga trên Mac và điều này chỉ làm việc tốt
sebasjimenez10

1

brew services restart postgresqlđã không sửa chữa cho tôi. Tôi chắc chắn rằng việc khởi động lại sẽ hoạt động, nhưng tôi muốn tìm ra nguyên nhân của sự cố.


Tôi tin rằng sự cố đã gây ra cho tôi vì hai phiên bản xung đột của postgresql.

Tôi đã postgresqlchạy với các dịch vụ bia, và sau đó cài đặt postgresql@11mà vẫn postgresqlchạy trong các dịch vụ bia ngay cả khi tôi đã gỡ cài đặt postgresql.

Tôi đã khắc phục điều này bằng cách dừng postgresqldịch vụ nấu bia, mặc dù nó không được liệt kê trong brew services list.


Các bước tái tạo:

$ brew install postgresql
$ brew services start postgresql

$ brew install postgresql@11
$ brew uninstall postgresql

$ brew services start postgresql@11

Làm thế nào để khắc phục:

$ brew services stop postgresql

Mở một vấn đề về Homebrew yêu cầu rằng dịch vụ của một công thức tự động nên được dừng lại khi gỡ bỏ cài đặt.


Vấn đề của tôi là tôi đã postgresql@9.5chạy, sau đó được cài đặt postgresql@9.6. Mặc dù tôi đã gỡ cài đặt 9.5, nhưng nó vẫn chạy. Khởi động lại 9.6 không khắc phục được sự cố. Bản sửa lỗi thực tế là dừng 9.5, sau đó khởi động lại 9.6 và sau đó điều này đã hoạt động.
Simon Kissane

Gỡ cài đặt tất cả postgresql có thể khiến điều này thậm chí còn tồi tệ hơn.
theKid

0

Rõ ràng, một điều tương tự cũng xảy ra với Java / JDBC khi kết nối với Postgres.

Giải pháp ở đây là yêu cầu JDBC báo cáo múi giờ chính xác của người dùng cho Postgres trong khi nhận kết nối.

Vì vậy, đề cập rõ ràng múi giờ của người dùng trong khi khởi động chương trình sẽ giúp:

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

Ghi chú:

Thêm điều này vào đây vì đây là kết quả đầu tiên trên Google cho vấn đề này khi kết nối với Postgres!

Nguồn:

Nhận xét này của Yuriy trên diễn đàn hỗ trợ Jira: https://community.atlassian.com/t5/Jira-questions/invalid-value-for-parameter-quot-TimeZone-quot-quot-US-Pacific/qaq-p/ 839426

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.