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 mantener solo 9.4 y desinstalar los otros? 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 un 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"?
14.04
postgresql
Houman
fuente
fuente
sudo apt-get remove postgresql-9.3
que eliminará 9.3 (después de apagar el servidor 9.3)Respuestas:
Las diferentes versiones de PostgreSQL se encuentran en los paquetes postgresql-9. *.
Por lo tanto, debe eliminar sus dos paquetes:
Entonces deberías eliminar las carpetas de configuración innecesarias:
Y desde la carpeta / var / lib / si tiene:
Espero que te ayude.
fuente
Agregar respuesta muy tarde, pero podría ayudar a las personas aquí.
Respuesta corta: el error indica que postgres está configurado en un puerto incorrecto (no predeterminado). Usa 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, siguientes versiones de Postgres se están ejecutando:
9.3 --> 5432
,9.4 -->5434
,9.5 --> 5433
.Puede desinstalar las otras versiones usando
sudo apt-get purge postgresql-9.x
dónde9.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 errorIs the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
indica perfectamente que psql intenta conectarse de forma predeterminada al puerto5432
que no ya tiene algún postgres adjunto.Dos soluciones aquí :
psql -p 5434
opción de puerto (-p / - port) en el comando psql.port
valor de configuración del servidor postgres/etc/postgresql/9.5/main/postgresql.conf
para que se publique en 5432. No olvide reiniciar postgres después del cambio.fuente