我正在尝试在Centos 7上设置Postgresql 9.3服务器(通过yum安装)在自定义目录中运行,我的情况是在启动时挂载一个加密分区(/custom_container/database)。由于某种原因,Postgresql不像手册中描述的那样正常工作,并在服务启动时发生错误。
注意:它不想接受我设置的PGDATA环境变量,当运行时出现问题。
su - postgres -c '/usr/pgsql-9.3/bin/initdb'
假设 PGDATA 目录的所有者是 postgres:postgres,则群集将在默认目录 /var/lib/pgsql/9.3/data/ 内初始化。
唯一改变这种情况的方式就是使用
。su - postgres -c '/usr/pgsql-9.3/bin/initdb --pgdata=$PGDATA'
我正在使用自定义容器,需要初始化内部目录。我无法弄清楚这一点,因为文档中说PGDATA变量采用默认值。
问题:运行时出现
service postgresql-9.3 start
我在日志中遇到了一个错误
postgresql-9.3.service - PostgreSQL 9.3 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-9.3.service; disabled)
Active: failed (Result: exit-code) since Mon 2014-11-10 15:24:15 CET; 1s ago
Process: 2785 ExecStartPre=/usr/pgsql-9.3/bin/postgresql93-check-db-dir ${PGDATA} (code=exited, status=1/FAILURE)
Nov 10 15:24:15 CentOS-70-64-minimal systemd[1]: Starting PostgreSQL 9.3 database server...
Nov 10 15:24:15 CentOS-70-64-minimal postgresql93-check-db-dir[2785]: "/var/lib/pgsql/9.3/data/" is missing or empty.
Nov 10 15:24:15 CentOS-70-64-minimal postgresql93-check-db-dir[2785]: Use "/usr/pgsql-9.3/bin/postgresql93-setup initdb" to initialize t...ster.
Nov 10 15:24:15 CentOS-70-64-minimal postgresql93-check-db-dir[2785]: See %{_pkgdocdir}/README.rpm-dist for more information.
Nov 10 15:24:15 CentOS-70-64-minimal systemd[1]: postgresql-9.3.service: control process exited, code=exited status=1
Nov 10 15:24:15 CentOS-70-64-minimal systemd[1]: Failed to start PostgreSQL 9.3 database server.
Nov 10 15:24:15 CentOS-70-64-minimal systemd[1]: Unit postgresql-9.3.service entered failed state.
这意味着即使集群在新的$PGDATA目录(/custom_container/database)中初始化,Postgresql仍会在/var/lib/pgsql/9.3/data/中查找集群。有人之前遇到过这个Postgresql问题吗?我是忘了某些配置选项还是问题来自于Postgresql安装本身?谢谢您提前!
echo $PGDATA
,结果是否显示了正确的路径? - Bagus Trihatmajapg_ctl -D $PGDATA start &
命令并查看是否有效。 - Bagus Trihatmaja