Postgres服务的Centos 7环境变量

Vit*_*its 5 linux postgresql centos postgresql-9.3 centos7

最近我遇到了使用自定义PGDATA路径启动postgresql服务的问题.它试图查看未初始化的默认数据目录(/var/lib/pgsql/9.3/data/),因此触发了这些错误.似乎问题是Centos 7上的服务启动器剥离了所有环境变量,包括PGDATA.

关于这个问题的有趣线索

有没有办法配置

service postgresql-9.3 start
Run Code Online (Sandbox Code Playgroud)

使用自定义环境变量?是否有必须定义这些变量的服务的配置文件?

先感谢您!

小智 13

感谢上面的回答,我们今天刚刚遇到了这个变化.您还可以保留默认设置,并通过将以下内容放在/etc/systemd/system/postgresql-9.3.service中来覆盖PGDATA变量:

# Include the default config:
.include /lib/systemd/system/postgresql-9.3.service

[Service]
Environment=PGDATA=<your path here>/pgsql/9.3/data
Run Code Online (Sandbox Code Playgroud)

这样就无需将/usr/lib/systemd/system/postgresql-9.3.service中的更改重新集成回本地副本.

  • 这里也需要`systemctl daemon-reload`。 (2认同)

Vit*_*its 5

好的,我得到了一个适合我的解决方案.

nano /etc/systemd/system/postgresql-9.3.service 
Run Code Online (Sandbox Code Playgroud)

从/usr/lib/systemd/system/postgresql-9.3.service和PGDATA变量复制的内容已更改.然后

systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)

然后我正常启动服务,它工作正常.诀窍是更改此服务配置文件.