I happen to have 2 installed instances of postgresql at my machine: 9.1 and 9.2:
sudo service postgresql status
9.1/main (port 5432): down
9.2/main (port 5433): down
They are located at /etc/postgresql/9.1/
and /etc/postgresql/9.2/
. Then I run 9.2
by saying sudo service postgresql start
But this command fails:
$ psql
psql: 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"?
I really want to use 9.2
only, I don't need 2 instances.
Do you have any idea of how to either remove 9.1
safely or make 9.2
to be the main, default instance?
-------------------------------------------------------------------------------------------------------
This situation with two clusters in Ubuntu may happen when upgrading to a newer release providing an newer postgresql version.
The automatic upgrade does not remove the old cluster, presumably for fear of erasing valuable data (which is wise because some postgres upgrades may require human work to be complete).
If you know you want to drop it, just run:
sudo pg_dropcluster --stop 9.1 main
The corresponding data directory will be removed and service postgresql
will no longer refer to 9.1
At this point the 9.2 cluster will still use the port 5433, which is unpractical.
To switch it to the default port, edit /etc/postgresql/9.2/main/postgresql.conf
and change the line port = 5433
to port = 5432
Then restart PostgreSQL.
Finally to get rid of the postgresql-9.1 packages see the result of dpkg -l 'postgresql*9.1*'