Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PostgresQL: how to start up the database server and create a database

When I try to run a server:

postgres@ubuntu:~$ /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
LOG:  could not bind IPv4 socket: Address already in use
HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
WARNING:  could not create listen socket for "localhost"
FATAL:  could not create any TCP/IP sockets postgres@ubuntu:~$ 

Then I change user to myself:

postgres@ubuntu:~$ su - michael

michael@ubuntu:~$  sudo netstat -tulpn | grep 5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      959/postgres 

Well, postgres seems to be listening to the port and this seems to be the problem.

Let us change pack to postgres and try to kill this process:

postgres@ubuntu:~$ kill `cat /usr/local/pgsql/data/postmaster.pid`

The reaction is:

cat: /usr/local/pgsql/data/postmaster.pid: No such file or directory
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

Could you recommend me how to proceed?

like image 858
Kifsif Avatar asked Oct 05 '12 13:10

Kifsif


1 Answers

First, get the running Postgres pid:

ps -ef | grep postmaster | grep -v grep | awk '{print $2}'

Then kill it

kill <the_pid_you_just_got>

But unless you are trying to do something very special with Postgres (multiple instances...) you should stop it using sudo /etc/init.d/postgresql stop (or sudo /etc/init.d/postgres stop) AND start it using sudo /etc/init.d/postgresql start

Postgres runs as a service, and so it has a service control file/script which is in charge of correctly starting and stopping it. These control files used to be located inside /etc/init.d, but I must admit it has become a bit messy these days, with the growing number of services management systems (init, upstart, systemd...)

like image 101
mbarthelemy Avatar answered Sep 28 '22 01:09

mbarthelemy