Esto realmente parece un error de permisos de archivo. Los sockets de dominio Unix son archivos y tienen permisos de usuario como cualquier otro. Parece que el usuario de OSX que intenta acceder a la base de datos no tiene permisos de archivo para acceder al archivo de socket. Para confirmar esto, realicé algunas pruebas en Ubuntu y psql para intentar generar el mismo error (incluido a continuación).
Debe verificar los permisos en el archivo de socket y sus directorios /var
y /var/pgsql_socket
. Su aplicación Rails (usuario de OSX) debe tener permisos de ejecución (x) en estos directorios (preferiblemente otorgar permisos a todos) y el socket debe tener permisos completos (wrx). Puede usar ls -lAd <file>
para verificarlos, y si alguno de ellos es un enlace simbólico, debe verificar el archivo o dirigir los puntos del enlace.
Puede cambiar los permisos en el directorio por sí mismo, pero el socket está configurado por postgres en postgresql.conf
. Esto se puede encontrar en el mismo directorio que pg_hba.conf
(Tendrás que averiguar cuál). Una vez que haya configurado los permisos, deberá reiniciar postgresql.
# postgresql.conf should contain...
unix_socket_directory = '/var/run/postgresql' # dont worry if yours is different
#unix_socket_group = '' # default is fine here
#unix_socket_permissions = 0777 # check this one and uncomment if necessary.
EDITAR:
Hice una búsqueda rápida en google que tal vez desee ver si es relevante. Esto podría resultar en cualquier intento de find
su archivo de configuración está fallando.
http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html
Mensajes de error:
Usuario no encontrado en pg_hba.conf
psql: FATAL: no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off
Autenticación de contraseña de usuario fallida:
psql: FATAL: password authentication failed for user "couling"
Falta el archivo de socket de Unix:
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"?
El socket Unix existe, pero el servidor no lo escucha.
psql: could not connect to server: Connection refused
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Permisos de archivo incorrectos en un archivo de socket de Unix :
psql: could not connect to server: Permission denied
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?