在Centos上无法启动PostgreSQL服务器

3
我刚刚按照这个教程操作:

http://www.unixmen.com/postgresql-9-4-released-install-centos-7/

但是在我的CentOS 6.5机器上无法启动PostgreSQL服务器。以下是错误信息:
[root@vm5 ~]# service postgresql-9.4 initdb
Data directory is not empty!
[root@vm5 ~]# service postgresql-9.4 start                 [FAILED]
Starting postgresql-9.4 service:                           [FAILED]
[root@vm5 ~]# /etc/init.d/postgresql-9.4 start
Starting postgresql-9.4 service:                           [FAILED]

在那个教程之前,我已经尝试过这个:

https://wiki.postgresql.org/wiki/YUM_Installation

我不知道还能做什么。


2
你的日志里记录了什么? - Lajos Veres
@LajosVeres 我怎么查看日志? - dex90
通常情况下,它在 /var/log/postgresql 或 .../pgsql 或类似的位置。 - Lajos Veres
@LajosVeres,唯一出现的一个叫做pgsql,但它是空的。 - dex90
1
"数据目录不为空!"非常清楚该怎么做:清空此目录或使用其他目录。 - Frank Heikens
显示剩余4条评论
3个回答

3

看起来你的Postgres 数据目录不是空的!所以需要手动删除lib/pgsql下的data目录,如下:

 rm -rf /var/lib/pgsql/data

现在初始化数据库。正如@joop所说,最好备份数据目录。

mv /var/lib/pgsql/data  /var/lib/pgsql/data.OLD; 
mkdir /var/lib/pgsql/data; 
chown postgres:postgres /var/lib/pgsql/data

如果您的pgsql目录空间不足,您可以将data移动到其他地方。
cp -aRv /var/lib/pgsql/data  to_dir/path
rm -rf /var/lib/pgsql/data/*

在这里,我希望你不会遇到chown的问题。


那是一个危险的建议;可能会有有价值的数据(除非这是一个新安装)。清理/安全的方法是 mv /var/lib/pgsql/data /var/lib/pgsql/data.OLD; mkdir /var/lib/pgsql/data; chown postgres.postgres /var/lib/pgsql/data - joop

2

我刚遇到了类似的问题。这与权限有关。如果您查看启动日志,应该会找到错误信息。

cat /var/lib/pgsql/9.4/pgstartup.log

< 2018-05-03 22:15:35.896 EDT >FATAL:  data directory "/var/lib/pgsql/9.4/data" has group or world access

< 2018-05-03 22:15:35.896 EDT >DETAIL:  Permissions should be u=rwx (0700).

如果涉及到权限问题,比如我的情况,请运行以下命令:
chown -R postgres /var/lib/pgsql/9.4/data

chmod -R 700 /var/lib/pgsql/9.4/data 

service postgresql-9.4 start

-1

这让我成功启动了Postgresql数据库9.5,而且是在移动了数据目录并使用sudo安装之后。请参考以下步骤:

[hostname]# mv -f data data_BKP18072016
[hostname]# pwd
/var/lib/pgsql/9.5
[hostname]# sudo service postgresql-9.5 initdb
Initializing database:                                     [  OK  ]
[hostname]# sudo service postgresql-9.5 initdb
Starting postgresql-9.5 service:                           [  OK  ]
[hostname]# sudo service postgresql-9.5 start
Starting postgresql-9.5 service:                           [  OK  ]*

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接