Unter Ubuntu 14.04 habe ich Folgendes getan, um die neuesten Postgres zu erhalten:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
Anschließend habe ich die Version 9.4 installiert:
sudo apt-get install postgresql-9.4
Allerdings scheint es, dass ich jetzt drei Versionen habe:
sudo service postgresql stop
* Stopping PostgreSQL 9.3 database server [ OK ]
* Stopping PostgreSQL 9.4 database server [ OK ]
* Stopping PostgreSQL 9.5 database server [ OK ]
Wie kann ich nur 9.4 behalten und die anderen deinstallieren? Danke
AKTUALISIEREN:
Wie in den Kommentaren vorgeschlagen, habe ich 9.3 und 9.5 deinstalliert.
Aber wenn ich das mache:
sudo service postgresql status
9.3/main (port 5432): down
9.4/main (port 5434): online
9.5/main (port 5433): down
Soweit, so gut, aber wenn ich zu Postgres wechsle:
sudo su postgres
und mache ein psql, bekomme ich eine Fehlermeldung:
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"?
Antwort1
Verschiedene Versionen von PostgreSQL befinden sich in den Paketen postgresql-9.*.
Sie sollten also Ihre beiden Pakete entfernen:
sudo apt-get purge postgresql-9.3 postgresql-9.5
Anschließend sollten Sie unnötige Konfigurationsordner löschen:
rm -r /etc/postgresql/9.3/ /etc/postgresql/9.5
Und aus dem Ordner /var/lib/, wenn Sie Folgendes haben:
/var/lib/postgresql/*
Ich hoffe es hilft dir.
Antwort2
Die Antwort kommt sehr spät, könnte aber den Leuten hier helfen.
Kurze Antwort:Der Fehler zeigt an, dass Postgres auf dem falschen (nicht standardmäßigen) Port konfiguriert ist. Verwenden Sie den richtigen Port
Lange Antwort:
Als Sie mehrere Versionen von Postgresql installiert haben, begannen alle damit, Postgres-Cluster auf unterschiedlichen Ports auszuführen. In Ihrer Ausgabe werden die folgenden Postgres-Versionen ausgeführt: 9.3 --> 5432
, 9.4 -->5434
, 9.5 --> 5433
.
sudo service postgresql status
9.3/main (port 5432): down
9.4/main (port 5434): online
9.5/main (port 5433): down
Sie können die anderen Versionen mithilfe von „ sudo apt-get purge postgresql-9.x
Wo 9.x
ist Ihre Version?“ deinstallieren. In Ihrem Fall ist die auf Ihrem System vorhandene Version (9.4) jedoch so konfiguriert, dass sie auf Port 5434 ausgeführt wird. Der Fehler Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
weist daher eindeutig darauf hin, dass psql standardmäßig versucht, eine Verbindung zu einem Port herzustellen 5432
, an den kein Postgres mehr angeschlossen ist.
Hier zwei Lösungen:
- Verwenden Sie entweder
psql -p 5434
die Portoption (-p/--port) im PSSQL-Befehl. - Oder konfigurieren Sie Ihren Postgres-Serverkonfigurationswert
port
so,/etc/postgresql/9.5/main/postgresql.conf
dass er auf 5432 bereitgestellt wird. Vergessen Sie nicht, Postgres nach der Änderung neu zu starten.