Postgres no pudo conectarse al servidor

416

Después de preparar la actualización y la actualización, mis postgres tuvieron algún problema. Traté de desinstalar postgres e instalarlo nuevamente, pero no funcionó tan bien.

Este es el mensaje de error. (También recibí este mensaje de error cuando intento hacer rake db: migrate)

$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

¿Cómo puedo resolverlo?

Versión para Mac: Mountain lion.

versión casera: 0.9.3

versión de postgres: psql (PostgreSQL) 9.2.1

Y esto es lo que hice.

12:30 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.2.1...
12:31 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.1.4...
12:31 ~/D/works$ psql --version
bash: /usr/local/bin/psql: No such file or directory
12:33 ~/D/works$ brew install postgresql
==> Downloading http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz2
Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2
......
......
==> Summary
/usr/local/Cellar/postgresql/9.2.1: 2814 files, 38M, built in 2.7 minutes
12:37 ~/D/works$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "laigary".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents
12:39 ~/D/works$   cp /usr/local/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
12:39 ~/D/works$   launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
homebrew.mxcl.postgresql: Already loaded
12:39 ~/D/works$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
12:39 ~/D/works$ env ARCHFLAGS="-arch x86_64" gem install pg
Building native extensions.  This could take a while...
Successfully installed pg-0.14.1
1 gem installed
12:42 ~/D/works$ psql --version
psql (PostgreSQL) 9.2.1
12:42 ~/D/works$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Ahora, después de reinstalar howbrew, cuando lo uso $ psql, no muestra ningún mensaje de error.

Pero ejecuto rake db:migratemi aplicación de rieles, muestra:

could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in `new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `loop'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in `checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block in connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue in create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (3 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:63:in `run'
/usr/local/bin/rake:32:in `<main>'
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"riy_development", "pool"=>5, "username"=>nil, "password"=>nil}

Finalmente encuentro la solución.

$ sudo mkdir /var/pgsql_socket/
$ sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

Esta solución es un poco complicada, pero funciona. Espero que alguien tenga una mejor solución

Actualizar

Esto también funciona para mí.

rm /usr/local/var/postgres/postmaster.pid
Gary Lai
fuente
3
Tengo exactamente el mismo problema, pero su solución no funcionó para mí. Creo que este es un problema de permisos, pero no tengo el conocimiento de los permisos de archivos para solucionarlo.
ajbraus
Para aquellos que instalan PG a través de Homebrew y están teniendo problemas, encontré otra respuesta. Simplemente desinstale pg gem y vuelva a instalar con las configuraciones de Homebrew. Vea la respuesta en stackoverflow.com/a/19609228/1072058 .
zquintana
respuesta similar aquí - stackoverflow.com/questions/13573204/…
VelLes
1
Inicia postgres.
atw
44
Actualice su versión actual a la más nueva con el siguiente comando brew postgresql-upgrade-database

Respuestas:

800

Tuve un problema similar; un archivo pid estaba bloqueando el inicio de postgres. Arreglarlo:

rm /usr/local/var/postgres/postmaster.pid

Y entonces todo está bien.

jonathanpberger
fuente
44
Esto funcionó para mí en OSX Mavericks después de ver este problema después de una actualización / reinicio.
eprothro
3
@jstafford gracias, ¡ya lo resolví! :) La solución fue desinstalar a través de homebew y luego reiniciar mi computadora de inmediato, para poder reinstalar postgres. La versión anterior se ejecutaba en segundo plano, creando archivos y conflictos cada vez que intentaba reinstalar postgres.
betoharres
199
Esto no funcionó para mí en Mavericks:rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
sscirrus
16
Esto funcionó para mí, después de borrar tuve que comenzar postgres. # pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start
Ricardo Castañeda
12
Recomiendo seguir el registro del servidor para asegurarse de que este sea realmente el problema:tail /usr/local/var/postgres/server.log
Josh Bodah
255

Esto a veces puede ser un problema con una actualización de postgres.

En mi caso, sucedió al actualizar de 9.3 a 9.4.

Ver http://www.postgresql.org/docs/9.4/static/upgrading.html

OS X / Homebrew:

Intente ejecutar postgres -D /usr/local/var/postgres: le dará un resultado mucho más detallado si postgres no se inicia.

En mi caso, la ejecución rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8eliminó mis bases de datos antiguas y luego reinicializó el esquema db de postgres.

Gracias a https://github.com/Homebrew/homebrew/issues/35240 por esa solución.

Después de regenerar mis bases de datos (con rake db:create) todo volvió a funcionar bien.

FreePender
fuente
1
Esto funcionó para mí con un postgres instalado homebrew en Yosemite.
cpursley
77
Si la ejecución postgres -D /usr/local/var/postgresle indica que el directorio de datos se inicializó con una versión anterior e incompatible de Postgres, y no desea perder sus datos locales, puede probar este hilo
Nathan Long
Después de ejecutar el comando anterior, ejecuté: pg_ctl -D /usr/local/var/postgres -l logfile starty luego mi servidor se inició en segundo plano
Tommyixi
55
Use brew services start postgresen OSX para iniciar postgres en segundo plano en lugar depostgres -D /usr/local/var/postgres
Mike Andrianov
1
@coffekid Tuve el mismo problema y lo solucioné con las instrucciones aquí: stackoverflow.com/questions/24379373/…
Micah Walter
69

Encontré una solución que funcionó para mí aquí:

/dba/75214/psql-could-not-connect-to-server-no-such-file-or-directory

Básicamente ejecuta el siguiente comando para iniciar manualmente el servidor:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Mosab Sasi
fuente
8
De todas las respuestas, esta es la única que funcionó para mí. Usando El Capitan
Patrick_870206
¡He intentado con ese cmd pero no funciona para mí!
Harshit Trivedi
41

Si la instalación y desinstalación de postgres con brew no funciona para usted, mire los registros de su instalación de postgresql o:

postgres -D /usr/local/var/postgres

si ve este tipo de salida:

LOG:  skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf"
FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.4, which is not compatible with this version 9.6.1.

Luego intente lo siguiente:

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

Luego inicie el servidor:

pg_ctl -D /usr/local/var/postgres -l logfile start

Fuente

svelandiag
fuente
2
Eso funciona cuando el motivo es diferente de la respuesta aceptada, es decir, los archivos de la base de datos no son compatibles con la versión actual. Como exactamente ese ha sido mi problema, voté a favor.
Falk Schuetzenmeister
1
Este comando funciona para mí.
Ccr
funciona para Mojave 10.14.6
Sgryt87
34

En Yosemite, si el archivo pid está bloqueando el inicio de Postgres y tienes un launchctldemonio intentando (y fallando) cargar los demonios de la base de datos, entonces necesitarás descargar el archivo plist:

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Luego elimine el archivo pid

$ rm /usr/local/var/postgres/postmaster.pid

Entonces recarga el launchctldemonio

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Ryan Atallah
fuente
28

Para cualquiera que lea esto y use Postgres.app, es posible que necesite host: localhosten su database.yml. http://postgresapp.com/documentation#toc_3

David Winiecki
fuente
Hacer esto cambia la conexión de un socket a una conexión TCP que puede tener implicaciones negativas. Ver stackoverflow.com/questions/6770649/…
Brett Bim el
1
Hmm, en realidad, si votas mal ... ¿Quizás no digas por qué? meta.stackoverflow.com/questions/252297/… O tal vez diga por qué, pero primero cierre la sesión para que sea anónimo.
David Winiecki
Creo que el voto negativo es porque la pregunta original no era para Postgres.app sino para Homebrew. Entonces, aunque la respuesta podría ser útil en algún lugar, no está respondiendo la pregunta.
Brian Estimado
El enlace no parece ir a ningún lado específico (y buscar "localhost" en el pasado no tiene resultados), pero esto simplemente solucionó el problema después de una hora de búsqueda.
sixty4bit el
25

La actualización de la base de datos me funciona

brew postgresql-upgrade-database

Tomer G
fuente
👍✅⭐️🙏Gracias Tomer! Esto funcionó para mí el 6/2/20 al actualizar de 9.4 a 12 en macOS Mojave 10.14.6
Rob Bednark el
19
brew services start postgres 

¡trabajó para mi!

rld
fuente
17

Verifique que exista el archivo socket.

$ ls -l /tmp/.s.PGSQL.5432
srwxrwxrwx  1 you  wheel  0 Nov 16 09:22 /tmp/.s.PGSQL.5432

Si no es así, compruebe su postgresql.conf para ver si hay cambios en el directorio unix_socket_directory.

$ grep unix_socket /usr/local/var/postgres/postgresql.conf
#unix_socket_directory = ''     # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation
jrwren
fuente
1
Esta es la respuesta de mi computadora. $ ls -l /tmp/.s.PGSQL.5432 ls: /tmp/.s.PGSQL.5432: No such file or directory $ grep unix_socket /usr/local/var/postgres/postgresql.conf #unix_socket_directory = '' # (change requires restart) #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation
Gary Lai
29
Finalmente encuentro la solución. $ mkdir /var/pgsql_socket/ $ sudo mkdir /var/pgsql_socket/ $ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/Esta solución es un poco complicada, pero funciona. Espero que alguien tenga una mejor solución
Gary Lai
buen trabajo @GaryLai. Muy extraño que no tuve que hacer lo mismo con mi postgresql homebrew
jrwren
2
Esto puede ayudar a algunas personas: github.com/mxcl/homebrew/issues/14527
AdamT
14

El problema también se puede atribuir a un proceso bloqueado que dejó atrás el archivo postmaster.pid. Hago esto y trabajo:

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql
rld
fuente
10

El problema es porque ya hay un servicio en ejecución en el puerto 5432 y no podemos establecer una conexión de socket psql a través de este puerto.

Eliminé el archivo socket

rm -rf /tmp/.s.PGSQL.5432/

Luego reinicié los servicios de postgres

postgres -D /usr/local/var/postgres

Esto funcionó para mí.

Abdullah Gürsu
fuente
9

La forma más infalible de evitar esto es hacer

brew reinstall postgresql

Esto mantendrá su permiso de usuario, etc., todo intacto y todo se restablecerá a nuevo. Funciona todo el tiempo!

attaboyabhipro
fuente
trabajó como un campeón !!!! Todo esto era necesario.
Akash K
Esto funciona, pero recomiendo que si rm /usr/local/var/postgres/postmaster.pidno funciona en Mac OS, utilice este comando.
Yaseen Ahmad
7

Cambiar la configuración de configuración de postresql o database.yml, cambiar $ PATH o crear enlaces simbólicos fueron innecesarios para mí. Todo lo que necesitaba hacer era gem uninstall pgy luego bundle(o gem install pg).

El problema era que la gema pg se había instalado antes de homebrew postgres, por lo que estaba recogiendo la configuración de la versión de postgres que viene con MacOS. Reinstalarlo (y así reconstruir la extensión nativa) solucionó el problema.

Juan
fuente
Sólo quería decir gracias. Acabo de actualizar PostgresApp en macOS y aunque pude conectarme usando psql, no pude conectarme a través de rieles. ¡desinstalar y reinstalar la gema pg fue solo el boleto! :)
craig1410
7

Esto me sucedió cuando actualicé de 9.3.4 a 9.5 ya que las bases de datos son incompatibles sin actualizar.

Usé pg_upgrade de la siguiente manera:

Deja de postgres

$ brew services stop postgresql

Actualice las bases de datos:

$ pg_upgrade \
   -d /usr/local/var/postgres \
   -D /usr/local/var/postgres9.5 \
   -b /usr/local/Cellar/postgresql/9.3.4/bin/ \
   -B /usr/local/Cellar/postgresql/9.5.0/bin/ \
   -v

Archive las bases de datos antiguas:

 $ mv /usr/local/var/postgres /usr/local/var/postgres9.3.save
 $ mv /usr/local/var/postgres9.5 /usr/local/var/postgres

Reiniciar postgres:

 $ brew services start postgresql

Gemas actualizadas (para rieles / registro activo):

 $ gem uninstall pg
 $ gem uninstall activerecord-postgresql-adapter
 $ bundle install
estujo
fuente
Estas instrucciones también se encuentran en collectiveidea.com/blog/archives/2016/01/08/… , y todavía me han funcionado hoy cuando actualicé de 9.4.0 a 9.6.3. No necesitaba hacer nada al archivo .pid manualmente.
Jan Hettich
7

Esto es realmente lo que se supone que debes hacer:

en su lugar, debería mirar /usr/local/var/postgres/postmaster.pid

y luego mira la primera línea del archivo: este es el PID incorrecto

correr

ps aux | grep <PID>

por ejemplo:

ps aux | grep 12345

entonces hazlo

kill <PID>

por ejemplo

kill 12345

Asumiendo que todavía está funcionando

/superuser/553045/fatal-lock-file-postmaster-pid-already-exists

¡no escuche la respuesta aceptada, es mala y corromperá sus datos!

usuario1596067
fuente
Gracias, esto funcionó para mí. Eliminar el postmaster.pid en la respuesta aceptada no fue suficiente.
Abe Petrillo
4

Opción Psql

-h nombre de host --host = nombre de host

: Especifica el nombre de host de la máquina en la que se ejecuta el servidor. Si el valor comienza con una barra inclinada, se utiliza como el directorio para el socket del dominio Unix.

$ grep "port\|unix_socket" /etc/postgresql/9.1/main/postgresql.conf
port = 5433                                         # (change requires restart)
unix_socket_directory = '/var/run/postgresql'       # (change requires resta

$ netstat -nalp | grep postgres
unix  2      [ ACC ]     STREAM     LISTENING     106753   4349/postgres       /tmp/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     10377 1031/postgres       /var/run/postgresql/.s.PGSQL.5433

Ejecute psql con la opción -host

$ psql -p 5433 -h /var/run/postgresql

No es necesario hacer un enlace suave

Juno Choo
fuente
4

Encontré este problema también en MacOS Sierra y cuando ejecutamos pg_ctl como se describió anteriormente, tuvimos el siguiente error pg_ctl: no database directory specified and environment variable PGDATA unset. Así que seguimos los pasos aquí que resolvieron nuestro problema, a saber:

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start

Austin
fuente
4

Si postgres se instaló usando homebrew, puede solucionar esto ejecutando:

brew link postgres
Cl local
fuente
4

Si apaga el sistema sin salir de psql, postgres no habría eliminado algunos archivos.

No encontré el archivo postmaster.pid en la ubicación usr / local / var / postgres

Entonces hice lo siguiente:

servicios de preparación comienzan postgresql

El comando anterior debería permitirle iniciar postgres

Ashwin
fuente
3

Me encontré con este problema después de intentar restaurar / soltar / crear un db mientras otros procesos accedían a ellos. La solución MacOSX / Homebrew fue:

  1. cierre todos los procesos de acceso rails server, rails console,guard , etc ...
  2. cargar / descargar usando los comandos que se encuentran en brew info postgres
  3. ejecutar restaurar / soltar / crear desde antes
TomFuertes
fuente
3

FWIW me sucedió esto hoy, pero lo que sucedió fue que estaba ejecutando actualizaciones de Ubuntu en ese momento, que probablemente actualizaban Postgres. Una vez que se completó la actualización, pude conectarme sin problemas.

Para completar, estaba tratando de recuperar registros de la base de datos desde una consola Rails:

development (main):0 > a = MyModel.find 73694
PG::ConnectionBad: 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"?
Ruy Diaz
fuente
3

Parece que su psql no se ejecuta. Deberías ejecutarlo antes de conectarte. Puede hacerlo utilizando Postgres.app solo para Mac OS. (Descargue e instale esta aplicación http://postgresapp.com ) Abra la aplicación y tendrá un servidor PostgreSQL listo y esperando nuevas conexiones. Cierre la aplicación y el servidor se apaga. También puede encontrar esta información aquí http://www.postgresql.org/download/macosx/ . Espero que esto te ayudará.

lisyk
fuente
1
Si bien este enlace puede responder la pregunta, es mejor incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden volverse inválidas si la página vinculada cambia.
Kmeixner
La pregunta se refería específicamente a una instalación de homebrew y no a una instalación de Postgres.app. Si bien esta respuesta es útil, no responde la pregunta. Sería como decir "Usar MySQL en su lugar".
Brian Estimado
3

Es porque un servidor anterior todavía se está ejecutando, intente cerrar todo y volver a ejecutar su aplicación.

Kamara Jōb
fuente
3

Para aquellos que usan este comando y no funcionan o el archivo no está allí y están usando Ruby on Rails

rm /usr/local/var/postgres/postmaster.pid

O cualquier otro comando y simplemente seguir fallando.

Resolví este problema desinstalando con Brew. Tuve que desinstalar con brew 2 veces, porque en la primera desinstalación quedará otra versión de postgresql, con la segunda desinstalación se completará el proceso.

Instalar postgresql con Brew

Luego suelte, cree y migre las bases de datos del proyecto

(No olvide iniciar el servidor postgresql)

Esteban Echeverry
fuente
3

Tengo el mismo problema porque estoy usando un nombre de usuario de Postgres incorrecto en el código. Me he registrado en Postgres psql -d postgresy entro \dua tomar el nombre de función y el nombre de usuario de Postgres correctas.

Entonces, cuando enfrentan este problema, deben asegurarse de usar el nombre de usuario, la contraseña, el nombre de host y la base de datos correctos de Postgres ...

Espero que esto ayude a cualquiera

Brillante-DucN
fuente
3

¿Has cambiado recientemente el pg_hba.conf? si acaba de comprobar si hay algún error tipográfico en:

"local" es solo para conexiones de socket de dominio Unix

local todos todos contraseña

Conexiones locales IPv4:

Hospedar todos los 127.0.0.1/32 contraseña

Conexiones locales IPv6:

host all all :: contraseña 1/128

A veces un simple error puede darnos dolor de cabeza. Espero que esto ayude y lo siento si mi inglés no es bueno en absoluto.

Sergio Zapata
fuente
3

Esto sucede cuando el servidor postgres no se está ejecutando. Pasos para instalar Postgres correctamente a través de Homebrew en MAC:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [Esto inicializa postgres para usar el directorio dado como el directorio de la base de datos. Normalmente no se recomienda utilizar el directorio de usuarios para el almacenamiento de la base de datos. Edite el archivo sudoers para agregar initdb y comandos similares y luego ejecute initdb en / usr / local / var / postgres]

  3. pg_ctl -D /Users/<username>/db -l logfile start [Después de obtener éxito con el paso 2, se le solicitará que ejecute el paso 3. Este comando inicia el servidor manualmente.]

Souvik Das
fuente
2

Tengo este mismo error. Resulta que postgres simplemente no se estaba ejecutando en absoluto (por lo general, siempre se ejecuta en segundo plano, pero por alguna razón no fue hoy).

Si este es el caso, simplemente escriba postgresla línea de comando del directorio de su proyecto

Benjamin Dunphy
fuente
2

Después de una tremenda cantidad de ida y vuelta, realmente se redujo a la pgversión de gema que estaba usando. En los rebeldes, la pgversión 0.15.1no se conecta al puerto 5432, pero la versión 0.17.1funciona bien, muy extraño.

Antonio
fuente