OpenGauss 设置时区

OpenGauss 数据库设置时区记录。

opengauss的默认时区为设置为 GMT。本文环境为 docker 安装的 opengauss。
在数据库中执行语句查询所需时区名字。

1
select * from PG_TIMEZONE_NAMES where utc_offset = '08:00:00';

查询结果如下:
image
查找数据库的数据目录路径(在数据库中执行)。

1
2
3
4
5
omm=# SHOW data_directory;
data_directory
-------------------------
/var/lib/opengauss/data
(1 row)

在 docker 中执行以下语句设置时区。

1
2
3
gs_guc set -D datadir -c "TimeZone='Asia/Shanghai'"
# 将 datadir 替换为上面查询出来的路径,例如
gs_guc set -D /var/lib/opengauss/data -c "TimeZone='Asia/Shanghai'"

执行成功后可以看到如下图示:
image
按照官方的操作,执行完成后需要重启数据库生效。

1
gs_om -t stop && gs_om -t start

但我的 docker 镜像中没有包含这个命令集,所以使用是重启 docker 来重启数据库。
也可以直接修改配置文件 postgresql.conf(这个文件在容器数据/var/lib/opengauss的挂载路径下面),然后重启。

1
655 timezone = 'Asia/Shanghai'

重启后就可以看到数据库时间变为CST时间了。

参考资料