Al igual que otros, recibo este error cuando ejecuto rake db: migrar en mi proyecto o incluso probar la mayoría de las tareas de base de datos para mis aplicaciones Ruby on Rails 3.2.
PGError (no se pudo conectar al servidor: no existe tal archivo o directorio. ¿El servidor se ejecuta localmente y acepta conexiones en el socket de dominio Unix "/tmp/.s.PGSQL.5432"?
Instalé PostgreSQL con Homebrew hace mucho tiempo y después de un intento de instalación de MongoDB recientemente, mi instalación de PostgreSQL nunca ha sido la misma. Estoy ejecutando OS X v10.6 Snow Leopard.
¿Qué hay de malo y cómo entiendo mejor cómo es y debe configurarse PostgreSQL en mi Mac?
Hasta ahora (creo) esto me dice que PostgreSQL no se está ejecutando (?).
ps -aef|grep postgres (ruby-1.9.2-p320@jct-ana) (develop) ✗
501 17604 11329 0 0:00.00 ttys001 0:00.00 grep postgres
¿Pero esto me dice que PostgreSQL se está ejecutando?
✪ launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist (ruby-1.9.2-p136)
homebrew.mxcl.postgresql: Already loaded
¿Cómo puedo solucionar esto? que no estoy viendo
PD: ~/Library/LaunchAgents
incluye dos archivos .plist de PostgreSQL. No estoy seguro si eso es relevante.
org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist
Intenté lo siguiente y obtuve un resultado como el siguiente.
$ psql -p 5432 -h localhost
psql: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
He leído desde entonces que esto ocurre porque OS X instala su propia versión de PostgreSQL y Homebrew instala una versión diferente en un lugar diferente y los comandos de PostgreSQL están buscando en el directorio / tmp /. Tendrá que buscar más en Stack Overflow, pero básicamente hace un enlace simbólico a PostgreSQL para que cualquier cosa que se encuentre en esa ruta tmp encuentre la ruta real, si eso tiene sentido.
Este es el enlace donde encontré algunas cosas más para probar, específicamente haciendo el enlace simbólico según lo anterior, Mac OSX Lion Postgres no acepta conexiones en /tmp/.s.PGSQL.5432 . Todavía deseo que alguien reúna una explicación decente de los conceptos detrás de la instalación de PostgreSQL en OS X y por qué todo es tan difícil.
Últimas ideas para ayudar con la resolución de problemas:
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
Entonces corre:
$ echo $PATH
Lo clave a tener en cuenta es esto:
Asegúrese de que la entrada de ruta para la copia de PostgreSQL que desea ejecutar VIENE ANTES de la ruta de acceso a PostgreSQL del sistema OS X.
Este es un requisito central que decide qué PostgreSQL se ejecuta y es lo que me dicen que conduce a la mayoría de estos problemas.