我已根据in this tutorial概述的步骤使用postgreSQL配置EC2实例。我正在使用AWS Linux 2018-03,并通过以下方式安装了postgres92
:
$ sudo yum install postgresql postgresql-server postgresql-devel postgresql-contrib postgresql-docs
我的理解是,我应该能够使用以下命令直接初始化postgres:
$ sudo postgresql-setup initdb
如this related question中所述(注意:似乎我也需要执行此步骤,我现在还无法将postgres作为服务运行)。但是,对postgresql-setup
的调用返回:
sudo: postgresql-setup: command not found
我也尝试过find / postgresql-setup
只是为了查看它是否挂在系统上的某个地方,但这没有任何作用。我无法通过sudo service postgres ...
命令启动postgres,因为该服务尚未被识别。我已确认该服务未通过以下方式运行:
$ sudo service postgres status
这只是告诉我该服务无法识别,我还检查了ps -ef | grep postgres
,它也没有显示任何内容。
我的问题仍然存在,我如何初始化postgres以便将其识别为服务给出postgresql-setup
找不到的位置?谢谢。
我能够通过稍微修改参考的教程/问题中的配置说明来解决我的问题。
[似乎PostgreSQL在v9上做了一些相当大的名称更改,使得postgresql-setup --initdb
和postgresql-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日志文件开始
最后,this post被证明在诊断围绕postgres作为无法识别的服务的问题方面非常有帮助。许多流行的教程都建议使用sudo service postgres start
,但是使用
$ ls -1 /etc/rc.d/rc3.d | fgrep post
表明我们确实应该将服务称为postgresql。如果我们执行以下操作:
$ sudo service postgresql initdb
$ sudo service postgresql start
我们实际上是要运行该服务,其余过程只是通过psql
进行配置,可以正常工作。