Postgresエラー「パラメータ「TimeZone」の無効な値:「UTC」」


87
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 2012

1
どのPostgreSQLバージョンを使用していますか?あなたのSET time zone 'UTC'ためにpsqlコンソールで動作しますか?
Mark Stosberg、2012

9.1.4を使用していますが、SETタイムゾーン「UTC」をどこでどのように入力しますか?
Stephen Nguyen

1
Jupitor =#SETタイムゾーン 'UTC'; エラー:パラメータ「TimeZone」の無効な値:「UTC」
Stephen Nguyen

1
Postgres(v.9.2.4)はUTCを好まないため、代わりに「GMT」を使用してください。
PhoebeB 2013

回答:


134

HerokuのPostgres.appを使用して同じ問題が発生しました。Macを再起動すると解決しました。


2
本当に奇妙なことに、アプリを再起動してタイムゾーンを設定してみました。どちらも機能せず、Macとブームを再起動しましたが、問題はありませんでした。
スティーブ・

4
brew経由でpostgressを再インストールした後、この問題が発生しました。Macの再起動が役立ちました。
maicher 2015年

1
アップグレードの修正は「pg_ctlが再起動」を発行した後のPostgreSQLを再起動
Jerzyk

4
postgresの再起動も私にとってはうまくいきました。私のエラーはエラーでした:パラメータ「TimeZone」の値が無効です:「America / Chicago」。このエラーメッセージを検索するのに時間を無駄にしたので、このコメントを追加したいと思っただけです。UTCでも発生することに気付かなかったためです
コリンD

1
正直、信じられませんが、これでうまくいきました。
Ryan Sandridge

76

postgresqlの再起動は機能します。

homebrewを使用してインストールした場合に再起動するには、次のbrew info postgresqlように指示します。

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

8
そうです、これはPostgreSQLがアップグレードされたが再起動されなかったために起こります。
フレッド

おかげで、もし再起動が本当に唯一の答えだったとしたら驚きました。
sirdharma

6
brewの場合brew services restart postgresql、特定のバージョンを使用するか、次のようなものを使用すると、さらに簡単に再起動できますbrew servces restart postgresql@9.6
JiuJitsuCoder

これをもう一度賛成できれば、そうします。もう一度このエラーに遭遇し、検索を行ったところ、このリンクは紫色でした。postgresを再起動することで再び解決しました。
キングドン


15

サーバーを再起動してみてください。私はHomebrewを通じてPostgresqlを更新しましたが、サーバーを再起動するのを忘れて、これと同じ問題が発生しました。クライアントとサーバーのバージョンが一致していないことが原因だと思います。psqlは以下で始まりました:

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

8

私はその点に値するものではないと思いますが、Postgres.appを再起動すると(システム全体を再起動するよりも優れています)、問題が解決しました。アプリはDockに表示されません。ウィンドウ上部のナビゲーションバーにあります。とにかくそれが役に立てば幸い。


8

@MathiasJの回答に基づくて、マシン全体を再起動する代わりに、

brew services restart postgresql@9.6

そしてその後の私のrake db:create仕事は完璧に働きました。


1
このヒントにより、再起動する必要がなくなりました。ありがとう!
Tim Stewart、

4

私もこの問題を抱えていました。

データベースにログインして、以下を発行します。

set time zone utc;

23
私のために働いていませんでした。エラー:パラメータ「TimeZone」の無効な値:「utc」
Flavio Wuensche

4

実際に起こったことは、postgresqlサーバーをアップグレードして古いフォルダをクリーンアップしたが、postgresqlサーバーを再起動していないことです。サーバーは削除されたディレクトリでタイムゾーンファイルを検索しました


4

他に何も修正せず、使用している場合 homebrewいる場合は、現在のリンクに問題がある可能性があります。

2つのPostgresバージョンがインストールされていると想定して、リンクを解除してから再度リンクしてください。私の場合、を実行するには2つのバージョンが必要でした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...エラーが発生しました。

私にとって問題を最終的に解決したのは、新しいシンボリックリンクを作成することでした。

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

この後、SET time zone 'UTC'正しく動作しました。


1

Postgres.appを使用していないが、コマンドラインまたはlaunchctlを介してpsqlを起動する人のためのクイックリファレンスです。Postgresのデータファイルとログファイルを配置する場所に応じて、以下を調整する必要があります。

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

私はまさにこれをやった。私はMacのターミナルからpostgresを起動/停止するのに慣れていますが、これは問題なく動作しました
sebasjimenez10

1

brew services restart postgresql私のために修正しませんでした。再起動しても問題はないはずですが、問題の原因を突き止めたいと考えていました。


この問題は、の2つのバージョンが競合しているために発生したと思いますpostgresql

私はすでにpostgresqlbrewサービスで実行していて、アンインストールした後もbrewサービスで実行しpostgresql@11たままpostgresqlインストールしましたpostgresqlた。

postgresqlリストされていませんでしたが、brewサービスを停止してこれを修正しました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

どうやら、Postgresへの接続中にJava / JDBCでも同様のことが起こります。

そこでの解決策は、接続の取得中にJDBCに正しいユーザーのタイムゾーンをPostgresに報告するように指示することです。

したがって、プログラムの起動時にユーザーのタイムゾーンを明示的に言及すると、次のことが可能になります。

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

注意:

これは、Postgresへの接続に関するこの問題のGoogleでの最初の結果であるため、ここに追加します。

ソース:

JuriサポートフォーラムでのYuriyによるこのコメント: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.