Psql no se pudo conectar al servidor: no existe ese archivo o directorio, ¿error 5432?

114

Estoy intentando ejecutar psqlen mi máquina Vagrant, pero aparece este 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"?

Nota: Vagrant 1.9.2 Box: ubuntu / trusty64, https://atlas.hashicorp.com/ubuntu/boxes/trusty64

EDITAR Comandos que he usado para instalar y ejecutar postgres:

  • sudo apt-get update
  • sudo apt-get install postgresql
  • sudo su postgres
  • psql -d postgres -U postgres
Saša Kalaba
fuente
1
Esta fue la respuesta que funcionó para mí: askubuntu.com/a/824325/733901
Bruno Louvem Azeredo

Respuestas:

157

Tuve este mismo problema, relacionado con la configuración de mi archivo pg_hba.conf (ubicado en /etc/postgresql/9.6/main). Tenga en cuenta que 9.6 es la versión de postgresql que estoy usando.

El error en sí está relacionado con una mala configuración de postgresql, lo que hace que el servidor se bloquee antes de iniciarse.

Sugeriría seguir estas instrucciones:

  1. Certifique que el servicio postgresql se está ejecutando, utilizando sudo service postgresql start
  2. Corre pg_lsclustersdesde tu terminal
  3. Compruebe cuál es el clúster que está ejecutando, la salida debería ser algo como:

    Versión: directorio de datos del propietario del estado del puerto del clúster

    9.6 ------- main - 5432 postgres en línea /var/lib/postgresql/9.6/main

    Ignore los signos '---', ya que se utilizan allí solo para la alineación. La información importante son la versión y el clúster. También puede comprobar si el servidor se está ejecutando o no en la columna de estado.

  4. Copie la información de la versión y el clúster, y use así:, pg_ctlcluster <version> <cluster> startasí que en mi caso, usando la versión 9.6 y el clúster 'principal', seríapg_ctlcluster 9.6 main start
  5. Si algo está mal, entonces postgresql generará un registro, al que se puede acceder en /var/log/postgresql/postgresql-<version>-main.log, por lo que en mi caso, el comando completo sería sudo nano /var/log/postgresql/postgresql-9.6-main.log.
  6. La salida debe mostrar cuál es el error.

    2017-07-13 16:53:04 BRT [32176-1] LOG: método de autenticación no válido "todos"
    2017-07-13 16:53:04 BRT [32176-2] CONTEXTO: línea 90 del archivo de configuración "/ etc /postgresql/9.5/main/pg_hba.conf "
    2017-07-13 16:53:04 BRT [32176-3] FATAL: no se pudo cargar pg_hba.conf

  7. Corrija los errores y reinicie el servicio postgresql sudo service postgresql restarty debería estar bien.

He buscado mucho para encontrar esto, el crédito es para esta publicación .

¡La mejor de las suertes!

malvadao
fuente
1
Excelente guia. ¡Lleno de explicaciones completas!
Salathiel Genèse
37

Tuve el mismo problema, pero ninguna de las respuestas aquí ayudó.

Cómo lo arreglé (mac)

  • Intenta iniciar postgresql con pg_ctl -D /usr/local/var/postgres start
  • Busque el mensaje de error que dice algo como FATAL: could not open directory "pg_tblspc": No such file or directory.
  • Crea ese directorio faltante mkdir /usr/local/var/postgres/pg_tblspc
  • Repita desde el paso uno hasta que haya creado todos los directorios que faltan
  • Cuando termine y luego intente iniciar postgresql nuevamente, podría decirFATAL: lock file "postmaster.pid" already exists
  • Eliminar postmaster.pid :rm /usr/local/var/postgres/postmaster.pid
  • Inicie postgres con: pg_ctl -D /usr/local/var/postgres start
  • Hecho ✨
Martinlasek
fuente
13

Solo estoy publicando esto para cualquiera que se sienta perdido y desesperado como yo cuando encontré esta pregunta. Parece que a veces al editar algunos archivos de configuración relacionados con psotgresql, uno puede cambiar accidentalmente los permisos del archivo:

ingrese la descripción de la imagen aquí

Observe cómo pg_hba.conf pertenece a root y los usuarios ni siquiera pueden leerlo. Esto hace que postgres no pueda abrir este archivo y por lo tanto no pueda iniciar el servidor, arrojando el error que se ve en la pregunta original.

Mediante la ejecución

sudo chmod +r pg_hba.conf

Pude hacer que este archivo una vez más accesible para el usuario de postgres y luego después de ejecutar

sudo service postgresql start

Pude volver a ejecutar el servidor.

wfgeo
fuente
Sí, este era mi problema, y ​​esto no se señaló en los registros (o si lo fue, no lo entendí).
EAmez
No es exactamente lo que me pasó, pero por alguna razón, el SERVICIO DE RED perdió privilegios de escritura en toda la estructura del directorio. Esta respuesta me señaló en la dirección correcta, de ahí el voto a favor.
Brad Mathews
5

¿ /etc/postgresql/9.6/main/postgresql.confMuestra el puerto que se está asignando? En mi instalación predeterminada de Xubuntu Linux, la mía mostró port = 5433 por alguna razón lo mejor que puedo recordar, pero comenté la línea en ese mismo archivo que decía listen_addresses = 'localhost'y descomentaba la línea listen_addresses = '*'. Así que quizás empiece y compruebe allí. Espero que ayude.

J2112O
fuente
4

Usar comando:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8
Gaurav Verma
fuente
9
¿No elimina esto toda la base de datos? Creo que sería conveniente una advertencia.
d33tah
1
Gracias @Tucker Watts y @Gaurav Verma. Resolví mi problema probando ambas soluciones y agregué este comando pg_ctl -D /usr/local/var/postgres -l logfile start.
Niyongabo
4

Esto funciona para mi:

pg_ctl -D /usr/local/var/postgresql@9.6 stop;
brew services stop postgresql@9.6;
brew services start postgresql@9.6;
MevlütÖzdemir
fuente
4

Estos dos pasos me solucionaron en Mac:

rm /usr/local/var/postgres/postmaster.pid
brew services restart postgresql

EDITAR:

En caso de que se enfrente a este problema (informado por @ luckyguy73): psql: FATAL: database "postgresql" does not exist

Tu puedes correr

brew postgresql-upgrade-database

arreglarlo.

nicodp
fuente
gracias hombre, pasé de no puedo conectarme a fatal siguiendo sus instrucciones: "psql: FATAL: la base de datos" postgresql "no existe"
luckyguy73
Qué raro, esto siempre me funciona. ¿Lograste solucionarlo?
nicodp
no te preocupes, en realidad resultó bien. Acabo de ejecutar 'brew postgresql-upgrade-database' y eso funcionó, gracias
luckyguy73
1
¡Me alegra que lo hayas arreglado! Si no le importa, lo agregaré a la respuesta también, en caso de que alguien más enfrente el mismo problema. Gracias
nicodp
3

Dentro de zsh:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

Esto es lo único que funcionó para mí después de incontables horas solucionando problemas.

Tucker Watts
fuente
Acabo de borrar todas mis bases de datos locales ... gracias
AlxVallejo hace
2

Abra su administrador de base de datos y ejecute este script

update pg_database set datallowconn = 'true' where datname = 'your_database_name';
Nasser Abdou
fuente
2

A mí me pasó lo mismo porque había cambiado algo en el /etc/hostsarchivo. Después de cambiarlo de nuevo 127.0.0.1 localhost, funcionó para mí.

coderanger
fuente
2

simplemente reinstale su pgsql con la versión directa sudo apt-get install postgresql-9.5 (debe eliminar el paquete antes de instalar uno nuevo)

Vitaly Kholodov
fuente
2

Pude resolver el problema ejecutando:

sudo systemctl start postgresql@9.5-main
Eugene Lem
fuente
sudo systemctl start postgresql@12-maintrabajó para mí
parsecer
2

En mi caso, fue el archivo de bloqueo postmaster.idque no se eliminó correctamente durante el último bloqueo del sistema lo que causó el problema. Eliminarlo sudo rm /usr/local/var/postgres/postmaster.pidy reiniciar Postgres resolvió el problema.

xji
fuente
1

Tuve el mismo error cuando creo la base de datos SQL en una máquina virtual. Había cambiado el valor predeterminado de /etc/postgresql/9.3/main/postgresql.conf shared_buffers = 200MBal 75% de mi RAM total. Bueno, me olvidé de asignar esa RAM en la VM. Cuando di el comando para crear una nueva base de datos, recibí el mismo error.

Apagado, le dio al bebé su biberón (RAM) y listo, funcionó.

CENTURION
fuente
1

Recibí este error cuando restauré mi base de datos desde el último archivo de respaldo pg_basebackup. Después de eso, cuando intenté conectar la base de datos (psql), recibí el mismo error. El error se resolvió, cuando actualicé el archivo pg_hba.conf y dondequiera que estuviera la autenticación "peer", la reemplacé por "md5" y luego reinicié los servicios de postgres. Después de eso, el problema se resolvió.

Shiwangini
fuente
1

Tuve problemas similares hace un tiempo. Después de probar más de 5 sugerencias, decidí volver a lo básico y comenzar desde el principio. Lo que significó eliminar mi instalación de postgresql y seguir esta guía al reinstalar postgresql. https://help.ubuntu.com/lts/serverguide/postgresql.html

Sylvery
fuente
1

Este error me sucedió después de que mi mac mini se desconectó (por lo que se forzó el apagado), y todo lo que tuve que hacer para solucionarlo fue reiniciar

muceyMuce
fuente
1

Te recomiendo que aclares el puerto que postgres. En mi caso, no sabía en qué puerto se estaba ejecutando postgres.

lsof -i | grep 'post'

entonces puede saber qué puerto está escuchando.

psql -U postgres -p "port_in_use"

con la opción de puerto, podría ser la respuesta. puedes usar psql.

horoyoi o
fuente
1

Ocasionalmente tengo el mismo problema, pero principalmente después de las actualizaciones de macOS. Apagar y migrar a la nueva versión generalmente lo soluciona para mí (haga cambios de acuerdo con su versión). Así que primero actualice su postgresql

brew services stop postgresql@12
brew services start postgresql@12
brew postgresql-upgrade-database

Esto es principalmente una solución temporal, pero como no pude encontrar una mejor solución, esto funciona para mí.

Nishith
fuente
brew postgresql-upgrade-database es lo que finalmente funcionó para mí después de que probé todo lo demás
luckyguy73
1

Si ninguna de las respuestas anteriores no le funciona, pruebe esta,

¡Mucha gente ha mencionado muchas soluciones a este problema! Pero todos olvidaron eso, el mismo problema surgirá cuando su disco no tenga suficiente espacio o el espacio para el que está asignado postgresesté lleno

Verifique el almacenamiento de su sistema, si está lleno, ¡libere espacio! luego reinicie su postgres por sudo service postgresql restarto haga una parada y comience sudo service posgresql stopluegosudo service postgresql start

Esto resolverá el problema, me resolvió

Sushin Pv
fuente
0

Tengo el mismo problema con postgres 11 en mi mac. Recibo este error cada vez que reinicio

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"?

Como solución temporal lo hago

brew services stop postgresql@11
brew services start postgresql@11
iAbhinav
fuente