最近我遇到了使用自定义PGDATA路径启动postgresql服务的问题。它试图查看未初始化的默认数据目录(/var/lib/pgsql/9.3/data/),因此触发了这些错误。似乎问题是Centos 7上的服务启动器剥离了所有环境变量,包括PGDATA。
Interesting thread on the issue
有没有办法配置
service postgresql-9.3 start
使用自定义环境变量?是否有必须定义这些变量的服务的配置文件?
提前谢谢!
答案 0 :(得分: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
这样就无需将 /usr/lib/systemd/system/postgresql-9.3.service 中的更改重新集成回本地副本。
答案 1 :(得分:5)
好的,我找到了一个适合我的解决方案。
nano /etc/systemd/system/postgresql-9.3.service
从/usr/lib/systemd/system/postgresql-9.3.service复制的内容和PGDATA变量已更改。然后
systemctl daemon-reload
然后我正常启动服务,它工作正常。诀窍是更改此服务配置文件。