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

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!


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 ✨

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.


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.


4

Usar comando:

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

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;

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.


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.


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';

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í.


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)


2

Pude resolver el problema ejecutando:

sudo systemctl start postgresql@9.5-main

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.


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ó.


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ó.



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


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.


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í.


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ó


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.