linux - Centos 7 上带有自定义 PGDATA 的 Postgresql 9.3

标签 linux database postgresql system-administration centos7

我正在尝试在 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.

这意味着 Postgresql,即使在新的 $PGDATA 目录(/custom_container/database)中初始化了集群,仍然会在/var/lib/pgsql/9.3/data/中查找集群

以前有人遇到过这种 Postgresql 行为吗?会不会是我忘记了某些配置选项,或者问题来自 Postgresql 安装?

提前致谢!

最佳答案

看来真正的问题是设置环境变量,我在以下线程中工作: Centos 7 environment variables for Postgres service 问题是在自定义/etc/systemd/system/postgresql-9.3.service 中设置的 PGDATA 变量应该根据/usr/lib/systemd/system/postgresql-9.3.service 的内容创建,它使用默认的 PGDATA var .

关于linux - Centos 7 上带有自定义 PGDATA 的 Postgresql 9.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26846093/

相关文章:

Linux 内核 : Threading vs Process - task_struct vs thread_info

sql - 与数据库无关的应用程序的数据库设计

php - 从数据库/验证返回 ID

php - 插入php和pgsql后如何获取返回id

postgresql - psql 和 pg_dump 版本不匹配

linux - 对于繁忙的 box ash shell,是否有等效的 exec 5>/BASH_XTRACEFD ="5"/set -x ?

php - 无法正常启动XAMPP

MySQL第一次创建数据库报错

ruby-on-rails-3 - 在 Ruby on Rails 3/Postgres/Apache Passenger 应用程序中跟踪内存泄漏

linux - Linux 系统有 gdb 的替代品吗?