无法在Centos上启动Postgres服务

时间:2017-10-27 12:03:27

标签: postgresql service daemon centos7 postgresql-9.2

我有CentOS 7,需要设置PostgreSQL 9.2.23。

我已执行以下步骤:

1)下载postgres:

$ yum install -y postgresql postgresql-devel postgresql-contrib postgresql-libs postgresql-server

2)创建/mnt/beegfs/db/pgsql/data目录以存储数据库集群(我在/ var上只有5 Gb可用空间,因此更喜欢将它存储在/ home,我有更多空间):

$ mkdir -p /mnt/beegfs/db/pgsql/data
$ chown postgres:postgres /mnt/beegfs/db/pgsql -R

3)允许密码验证并将/mnt/beegfs/db/pgsql/data设置为存储数据库集群的目录:

$ export PGSETUP_INITDB_OPTIONS="--auth-host=md5 --pgdata=/mnt/beegfs/db/pgsql/data/ -E 'UTF-8' --lc-collate='en_US.UTF-8' --lc-ctype='en_US.UTF-8'"

4)初始化Postgres数据库并启动PostgreSQL:

$ postgresql-setup initdb
Initializing database … failed, see /var/lib/pgsql/initdb.log

根据/var/lib/pgsql/initdb.log,一切正常,但必须使用/usr/bin/postgres -D /mnt/beegfs/db/pgsql/data/usr/bin/pg_ctl -D /mnt/beegfs/db/pgsql/data -l logfile start启动服务器。

5)使用postgres用户启动服务器(它不能与root一起使用):

$ su - postgres
$ pg_ctl -D /mnt/beegfs/db/pgsql/data start
$ logout

6)启动守护程序:

$ systemctl start postgresql
Job for postgresql.service failed because the control process exited with error code. See “systemctl status postgresql.service” and “journalctl -xe” for details.
$ systemctl status postgresql.service
● postgresql.service – PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since vie 2017-10-27 13:38:41 CEST; 20s ago
Process: 1465 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=1/FAILURE)

oct 27 13:38:41 nodo00 systemd[1]: Starting PostgreSQL database server…
oct 27 13:38:41 nodo00 systemd[1]: postgresql.service: control process exited, code=exited status=1
oct 27 13:38:41 nodo00 systemd[1]: Failed to start PostgreSQL database server.
oct 27 13:38:41 nodo00 systemd[1]: Unit postgresql.service entered failed state.
oct 27 13:38:41 nodo00 systemd[1]: postgresql.service failed.

我一直试图从几个论坛尝试可能的解决方案而没有任何成功。

我很欣赏这个问题的任何暗示。

提前致谢

修改 删除所有文件后,我再次从scracth开始。 步骤3)完全无用,所以我没有执行它。相反,我使用以下内容创建了文件/etc/systemd/system/postgresql.service

.include /usr/lib/systemd/system/postgresql.service

[Service]
Environment=PGDATA=/mnt/beegfs/db/pgsql/data

然后,在运行systemctl daemon-reload之后, 步骤4)结束" OK",步骤5)被跳过,步骤6)运行没有错误。

0 个答案:

没有答案