Starting a postgres SQL 9.6 Server on Amazon Linux returns unrecognized service

本小妞迷上赌 提交于 2019-12-13 05:16:22

问题


I am attempting to start a Postgres SQL server on amazon Linux using the command

sudo service postgresql start

I installed the server using this method. I have added it here for simplicity

sudo rpm -i https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-ami201503-96-9.6-2.noarch.rpm

and then

sudo yum install postgresql96-server.x86_64

after which i did this to install the command line tools for postgres

sudo yum install postgresql96.x86_64 postgresql96-libs.x86_64

Any suggestions on how I can start the server ? I usually start the server using the command

sudo service postgresql start

however its not working in this case as it says "Unrecognized service" I then tried this

postgres -D /usr/local/pgsql/data
postgres: could not access directory "/usr/local/pgsql/data": No such file or directory. Run initdb or pg_basebackup to initialize a PostgreSQL data directory.

回答1:


Having the same issue, or similar. May be I installed pgsql from source, don't remember. We could make our own service start files. How? Let's find out! >>RTFM<< starting with what we already know:

man service

which leads us to chkconfig(8), so

man chkconfig

and it gives us an option

chkconfig --add ${svcname}

to add a brand new service under a name we choose!

But before we do, we might actually want to check what's already there. With

service --status-all

we get a list of all known services and their run status. And I found "postmaster" in my list, and as you might know, the PostgreSQL master server to connect to used to be called "postmaster". Yet, when I try

service postmaster status

it also tells me it doesn't know such service. OK, forget it -- for now -- just let's move on with making our own! But I still want to peek what there is in run-level 3 (normal server run level). So I go

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

and there I find: "K36postgresql95"! So, accordingly our service name should be "postgresql95". Trying that:

service postgresql95 status

it says now "postmaster is stopped". Confusingly the name the service reports for itself both in service --status-all and when we individually inquire for it is different than the name used to actually address it in the service command. Good to know. Easy enough to search /etc/rc.d for the name of interest.

service postgresql95 start

now starts the service. And check with

psql -U ${pguser} ${pgdb}

and I find that working. So now all I need to do is enable that service at system boot to auto-start

chkconfig --levels 3 postgresql95 on

and that works, doesn't it?

PS: It doesn't matter that I happen to run version 9.5




回答2:


I recently installed PostgreSQL 9.2.24 on Amazon Linux 2 and I had to initialize the database manually before being able to create ROLE and DATABASE as I normally would on Ubuntu.

// initialize database after installing with yum
$ sudo postgresql-setup initdb

// start
$ sudo systemctl start postgresql.service


来源:https://stackoverflow.com/questions/53453173/starting-a-postgres-sql-9-6-server-on-amazon-linux-returns-unrecognized-service

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!