0

postgreSQL サーバーを次のようにセットアップしたいのです'Europe/Berlin'が、エラーが発生します。

SET time zone 'Europe/Berlin';
ERROR:  invalid value for parameter "TimeZone": "Europe/Berlin"

しかし、本当の問題は DdbSchema にあります。DB に接続しようとするとエラーが発生します

FATAL: invalid value for parameter "TimeZone": "Europe/Berlin"

DbSchema は、ローカル データベースに接続すると機能しますが、NAS (Synology) DB には接続しません。

何か案が ?

4

2 に答える 2

0

あなたの解決策は、Synology diskstation の zoneinfo に関する実際の問題の回避策にすぎないと思います。

ディスクステーションの postgres データベースに接続しようとすると、まったく同じエラーが発生しました。このクエリselect * from pg_timezone_names;は、postgresql が認識するすべてのタイムゾーン名を提供します。

"Timezone" で始まる 87 のエントリがあります。

          name          | abbrev | utc_offset | is_dst
------------------------+--------+------------+--------
 Timezone/Kuwait        | AST    | 03:00:00   | f
 Timezone/Nairobi       | EAT    | 03:00:00   | f
 ...

構成された postgrestimezonesetsにはさらに多くのエントリが含まれているため、postgres が起動時にこのビューを構築している別のソースが必要です。--with-system-tzdata=DIRECTORYpostgres にシステム zoneinfo から値を取得するように指示するコンパイル オプションがあることを発見しました。

調べたところ、正確に 87 エントリで/usr/share/zoneinfo呼び出された 1 つのサブディレクトリが見つかりました。Timezoneそして、明らかに、という名前のサブディレクトリはありませんでしEuropeた (という名前のタイムゾーン ファイルを使用Berlin)。tzdata解凍して作成することにより、ディスクステーションが自動または手動で更新するための解決策をすぐに見つけられませんでしたtzdata2016a.tar.gzmake not found...)。クイックフィックスとして、別の Linux システムからタイムゾーン ファイルをコピーしたところBerlin、問題が解決したので、正しいタイムゾーン "Europe/Berlin" を使用して Java/jdbc 経由で接続できるようになりました。

于 2016-02-08T23:52:41.730 に答える