当我尝试在AWS(亚马逊)Cloud9上启动PostgreSQL时,出现了“postgresql: unrecognized service”错误的问题,请问如何解决这个问题?

当我尝试在AWS Cloud9上启动PostgreSQL时,遇到了显示”postgresql: unrecognized service”的问题,让我困扰不已。

##$ rails new . --database=postgresql

创建新项目!但是,当我尝试使用最初的pg版本(0.18)时,被告知必须使用0.21版本。因此,我将Gemfile中的pg更改为0.21并尝试进行安装。然而,出现了libpq-fe.h..no错误,因此需要安装所需的库。

$ sudo yum install postgresql-devel

再次执行bundle install应该可以成功安装gem。

##$ bundle install

接下来我要建立数据库,但是在这里出现了无法连接到数据库的错误。

$ rails db:create
could not connect to server: No such file or directory Is the server running 
locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

这个是因为PostgreSQL没有启动吗?所以我搜索了一下,发现在AWS Cloud9上已经预装了PostgreSQL,只需要启动就可以了!有很多文章都说这样做就可以了,所以我就直接尝试启动了。

然而,此处出现了标题的错误:postgresql:未识别的服务,并且无法继续进行。

$ sudo service postgresql start
postgresql: unrecognized service

这个服务还没有被识别吗?先把PostreSQL所需的库安装一下吧。

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

然后尝试运行initdb并启动。

$ sudo service postgresql initdb && sudo service postgresql start

这次好像成功地启动了。

不过,如果保持现状,似乎无法创建表格等,因为没有ec2-user,所以需要使用psql创建用户。暂时先创建postgres用户并执行psql。

$ sudo -u postgres createuser -s ec2-user
$ sudo su postgres
$ psql

所以,使用psql执行ALTER USER,并使用\q退出。

ALTER USER "ec2-user" WITH SUPERUSER;
\q

为了最终返回到用户的初始状态,请执行退出操作。

$ exit

我会再次执行rails db:create。

$ rails db:create

总结

暫時解決錯誤非常好。

广告
将在 10 秒后关闭
bannerAds