Das sieht wirklich nach einem Dateiberechtigungsfehler aus. Unix-Domain-Sockets sind Dateien und haben wie alle anderen Benutzerberechtigungen. Es sieht so aus, als hätte der OSX-Benutzer, der versucht, auf die Datenbank zuzugreifen, keine Dateiberechtigungen für den Zugriff auf die Socket-Datei. Um dies zu bestätigen, habe ich einige Tests auf Ubuntu und psql durchgeführt, um zu versuchen, denselben Fehler zu generieren (unten enthalten).
Sie müssen die Berechtigungen für die Socket-Datei und ihre Verzeichnisse /var
überprüfen und /var/pgsql_socket
. Ihre Rails-App (OSX-Benutzer) muss über Ausführungsberechtigungen (x) für diese Verzeichnisse verfügen (vorzugsweise allen Berechtigungen erteilen), und der Socket sollte über vollständige Berechtigungen (wrx) verfügen. Sie können ls -lAd <file>
verwenden um diese zu überprüfen, und wenn einer davon ein symbolischer Link ist, müssen Sie die Datei oder das Verzeichnis überprüfen, auf das der Link verweist.
Sie können die Berechtigungen für das Verzeichnis selbst ändern, aber der Socket wird von postgres in postgresql.conf
konfiguriert . Diese befindet sich im selben Verzeichnis wie pg_hba.conf
(Sie müssen herausfinden, welche). Nachdem Sie die Berechtigungen festgelegt haben, müssen Sie postgresql neu starten.
# 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.
BEARBEITEN:
Ich habe eine schnelle Suche auf Google durchgeführt, die Sie vielleicht prüfen möchten, um zu sehen, ob es relevant ist. Dies kann durchaus zu einem Versuch führen, find
Ihre Konfigurationsdatei schlägt fehl.
http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html
Fehlermeldungen:
Benutzer nicht in pg_hba.conf gefunden
psql: FATAL: no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off
Benutzer fehlgeschlagene Passwortauthentifizierung:
psql: FATAL: password authentication failed for user "couling"
Fehlende Unix-Socket-Datei:
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"?
Unix-Socket existiert, aber der Server hört nicht darauf.
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"?
Ungültige Dateiberechtigungen für Unix-Socket-Datei :
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"?