En Ubuntu 14.04 hice esto para obtener los últimos postgres:
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
Luego instalé la versión 9.4:
sudo apt-get install postgresql-9.4
Sin embargo, parece que ahora tengo tres versiones:
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 ]
¿Cómo puedo conservar solo la 9.4 y desinstalar las demás? Gracias
ACTUALIZAR:
Como se sugiere en los comentarios, desinstalé 9.3 y 9.5.
Pero cuando hago esto:
sudo service postgresql status
9.3/main (port 5432): down
9.4/main (port 5434): online
9.5/main (port 5433): down
Hasta ahora todo bien, pero cuando cambio a postgres:
sudo su postgres
y hago un psql, me sale error:
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"?
Respuesta1
Las diferentes versiones de PostgreSQL se encuentran en los paquetes postgresql-9.*.
Entonces deberías eliminar tus dos paquetes:
sudo apt-get purge postgresql-9.3 postgresql-9.5
Entonces deberías eliminar las carpetas de configuración innecesarias:
rm -r /etc/postgresql/9.3/ /etc/postgresql/9.5
Y desde la carpeta /var/lib/ si tienes:
/var/lib/postgresql/*
Espero que te ayude.
Respuesta2
Agregar la respuesta muy tarde, pero podría ayudar a la gente aquí.
Respuesta corta:El error indica que Postgres está configurado en un puerto incorrecto (no predeterminado). Utilice el puerto correcto
Respuesta larga:
Cuando instaló varias versiones de Postgresql, todas comenzaron a ejecutar clústeres de Postgres en diferentes puertos. En su salida, se están ejecutando las siguientes versiones de Postgres: 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
Puede desinstalar las otras versiones usando sudo apt-get purge postgresql-9.x
dónde 9.x
está su versión; sin embargo, en su caso, la versión (9.4) que estaba presente en su sistema está configurada para ejecutarse en el puerto 5434. Por lo tanto, el error Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
indica perfectamente que psql de forma predeterminada intenta conectarse al puerto 5432
que no ya no tiene ningún postgres adjunto.
Dos soluciones aquí:
- Utilice,
psql -p 5434
es decir, la opción de puerto (-p/--port) en el comando psql. - O configure
port
el valor de configuración de su servidor Postgres/etc/postgresql/9.5/main/postgresql.conf
para que funcione en 5432. No olvide reiniciar Postgres después del cambio.