在AWS Linux上找不到postgresql设置命令和postgres服务



我一直在根据本教程中概述的步骤使用postgreSQL配置EC2实例。我使用的是AWS Linux 2018-03,并通过以下方式安装了postgres92

$ sudo yum install postgresql postgresql-server postgresql-devel postgresql-contrib postgresql-docs

我的理解是,我应该能够直接初始化postgres与:

$ sudo postgresql-setup initdb

正如这个相关问题中所指出的(注意:我似乎也需要执行这一步骤,我还不能将postgres作为服务运行(。但是,对postgresql-setup的调用返回:

sudo: postgresql-setup: command not found

我也尝试过find / postgresql-setup,只是想看看它是否在系统的某个地方,但没有结果。我无法通过sudo service postgres ...命令启动postgres,因为该服务尚未被识别。我已经确认该服务不是通过运行的

$ sudo service postgres status

这只是告诉我该服务无法识别,我还使用ps -ef | grep postgres进行了检查,但也没有结果。

我的问题仍然是,如果找不到postgresql-setup,我如何初始化postgres,以便将其识别为服务?谢谢

我对参考教程/问题中的配置说明进行了轻微修改,就解决了我的问题。

1.初始化数据库的不同调用

postgresql似乎在v9前后做了一些相当大的名称更改,使得postgresql-setup --initdbpostgresql-setup initdb现在等价于initdb

首先,可能需要更改数据目录的权限/所有权。典型的用户是postgres

$ sudo chmod 775 /var/lib/pgsql92
$ sudo chown USER /var/lib/pgsql92

使用初始化数据库

$ initdb -D /var/lib/pgsql92

根据当前角色的不同,可能需要sudo -u USER ...才能运行此程序,但我最终收到了:

成功。您现在可以使用启动数据库服务器

postgres-D/var/lib/pgsql或pg_ctl-D/var/lib/pgsql-l日志文件启动

2.不同的服务名称

最后,这篇文章被证明对诊断postgres作为一种未被识别的服务的问题非常有帮助。许多流行的教程都建议使用sudo service postgres start,但使用检查run-level-3服务(我不知道这是什么,但这个Gunther Schadow家伙确实知道(

$ ls -1 /etc/rc.d/rc3.d | fgrep post

表明我们实际上应该将服务调用为postgresql。如果我们执行以下操作:

$ sudo service postgresql initdb
$ sudo service postgresql start

我们实际让服务运行,剩下的过程只是通过psql进行配置,它按预期工作。

最新更新