Postgresql
在 Postgresql 中,我如何獲取本地時間作為在 FreeBSD 上工作的時區?
PostgreSQL
: 9.4
FreeBSD
: 11.2當我將
TimeZone
參數設置為 時,在postgresql.conf
嘗試localtime
啟動 PostgreSQL 時收到以下錯誤。service postgresql restart <2022-06-02 11:18:27.612 EDT> LOG: invalid value for parameter "TimeZone": "localtime" <2022-06-02 11:18:27.613 EDT> FATAL: configuration file "/usr/local/pgsql/data/postgresql.conf" contains errors pg_ctl: could not start server Examine the log output.
在我的搜尋過程中,我發現這似乎表明 /etc/localtime 應該是一個符號連結。我的不是,所以我嘗試將其更改為符號連結,但它仍然無法正常工作,因為我遇到了與上述相同的錯誤。
mv /etc/localtime /etc/localtime.bak ln -s /usr/share/zoneinfo/America/Yellowknife shutdown -r now ls -la /etc/localtime lrwxr-xr-x 1 root wheel 35 Jun 2 11:04 /etc/localtime -> /usr/share/zoneinfo/America/Yellowknife
是否可以
TimeZone
開始localtime
工作FreeBSD
?請注意,我還發現了這個討論,其中提到了創建一個
symlink
to/etc/localtime
in/usr/share/zoneinfo
。我也試過了,它沒有工作,因為我仍然得到與上面相同的錯誤。使用
pg_config --configure
我看到它沒有配置--with-system-tzdata
. 這是使用的要求localtime
嗎?
您配置 PostgreSQL 的方式,它不使用作業系統的時區數據庫,而是它自己的副本,位於
pg_config --sharedir
. 所以你的符號連結沒有效果。您必須在 PostgreSQL 的時區數據庫副本中創建該符號連結,但正確的解決方案不同:設置
timezone
為America/Yellowknife
.不要使用不受支持的 PostgreSQL 版本。