Recientemente me actualicé a OSX 10.7, momento en el que la instalación de mis rieles se bloqueó por completo al intentar conectarme al servidor psql. Cuando lo hago desde la línea de comando usando
psql -U postgres
funciona totalmente bien, pero cuando intento ejecutar el servidor o la consola de rails con el mismo nombre de usuario y contraseña, aparece este error
...activerecord-3.0.9/lib/active_record/connection_adapters/postgresql_adapter.rb:950:in `initialize': could not connect to server: Permission denied (PGError)
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Cualquier idea de lo que podría estar pasando sería muy útil. ¡Gracias!
Respuestas:
Es un problema de RUTA. Mac OSX Lion incluye Postgresql en el sistema ahora. Si lo hace
which psql
, probablemente verá enusr/bin/psql
lugar deusr/local/bin/psql
cuál es el correcto de HomeBrew. Si ejecutabrew doctor
, debería recibir un mensaje que indique que necesita agregarusr/local/bin
al encabezado de su variable PATH env.Editando su .bash_profile o .profile, o cualquier shell que esté usando y agregando:
export PATH=/usr/local/bin:$PATH
como la primera exportación para
PATH
luego, salga de la sesión de shell o obtenga su archivosource ~/.bash_profile
y ahora debería estar bien nuevamente.fuente
Para aquellos de ustedes que están interesados, reconstruí la solución. Todo lo que necesitaba era agregar
a la base de datos.yml para mi entorno y todo fue salsa.
fuente
Tuve este mismo problema con Mountain Lion pero lo único que funcionó para mí fue esta solución :
Comprueba dónde está el objetivo real:
Necesitaba crear este directorio:
Luego, utilizando el resultado del hallazgo anterior, cree este enlace simbólico:
Sospecho que para la mayoría de las personas en Mountain Lion puedes crear el directorio y hacer el enlace simbólico y no perder el tiempo haciendo la búsqueda a menos que el enlace simbólico no funcione.
PD: mi PostgreSQL se instaló a través del instalador oficial.
fuente
Si el problema persiste después de cambiar el camino (como lo hizo para mí), también intente esto ...
Parece que el problema (parcialmente) reside en la propia gema pg. Cuando se construye, descubre dónde debe estar el socket de dominio. Si cambia la ubicación del socket de dominio después del hecho, no parece surtir efecto hasta que reconstruya la gema.
fuente
Para aquellos que instalaron directamente desde el instalador oficial, solo agregar el host al comando funciona sin cambios de ruta:
fuente
Tuve el mismo problema y estaba teniendo problemas para que la solución de John Wang funcionara. Como señaló Darren, hay un problema con la gema pg. Para que funcione, necesitaba:
Luego reinstalar.
Lo que lo hizo funcionar.
fuente
Me encontré con esto también, pero también instalé postgres (no con homebrew). Si ese es el caso, debe encontrar la ruta anterior a psql (que puede ser / usr / local / bin, pero para mí era / usr / local / pgsql / bin) y anteponer eso a su $ PATH.
(antes)
which psql
=> / usr / bin / psql(corrección) export PATH = / usr / local / psql / bin: $ PATH
(después) `which psql '=> / usr / local / psql / bin
La sugerencia de John Wang de que
source ~/.bash_rc
luego agregue eso a su bash_rc es dorada.fuente
¿Es esto para homebrew? Puertos parece ponerlo en:
Así que asegúrese de usar exportar
Problema con los puertos de Mac: https://trac.macports.org/ticket/30125
fuente
No estoy contento con las respuestas más votadas, ya que son específicas del usuario del sistema operativo o reasignan Postgres para usar TCP en lugar de sockets de dominio, como lo señaló @pilif. He visto otra solución que implica reordenar las rutas predeterminadas a nivel del sistema para verificar la ruta de Brew antes de una ruta central del sistema, pero esto parece peligroso ya que podría afectar a todas las demás colisiones de nombres de aplicaciones como esta.
Este sitio detalla una solución que encontró mi compañero de trabajo. Todo se reduce a ejecutar un único script de shell que
Esto viene con la advertencia de que el Postgres predeterminado del sistema es cualquier cerveza que haya instalado, por lo que debe tomar una decisión sobre si es adecuado para usted. No me veo necesitando Postgres 8.4 específicamente sobre 9.x, pero YMMV
fuente
Otra posible solución que funcionó para mí es restablecer el archivo postmaster eliminándolo. Simplemente ejecute:
Vale la pena revisar el registro de errores que puedes encontrar aquí:
El mensaje de error que estaba teniendo era:
Todo funcionó muy bien después.
fuente
En mi caso, el servidor no se inició debido a una configuración de memoria compartida incorrecta. Al principio estaba confundido porque había varios procesos postgres en ejecución, pero esos eran procesos estándar del sistema. ¡Busca
postmaster
procesos!Todo lo que necesitaba hacer era cambiar la configuración de memoria compartida . En mi caso, no era necesario jugar con la configuración de la ruta.
fuente
Es posible que deba especificar el host de su base de datos.
fuente
Si te gusta un cambio permanente en tu $ PATH intente esto:
esto reescribirá tu
~/.MacOSX/environment.plist
.fuente
Soy nuevo en Rails, pero agregar lo siguiente a database.yml funcionó para mí:
No estoy seguro de por qué Rails usa de forma predeterminada los sockets de dominio en lugar de TCP, mientras que PostgreSQL no configura los sockets de dominio de forma predeterminada.
fuente
Mi PostgreSQL está instalado en / Library / PostgreSQL para que las cosas / usr / var no funcionen para mí.
Parece que Woz es correcto porque cada vez que cierro la tapa de mi Macbook Pro se bloquea ... Esto es lo que funcionó después del bloqueo para mí:
fuente