PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Impossibile connettersi a PostgreSQL locale

Sembra davvero un errore di autorizzazione del file. I socket di dominio Unix sono file e dispongono di autorizzazioni utente come qualsiasi altro. Sembra che l'utente OSX che tenta di accedere al database non disponga delle autorizzazioni file per accedere al file socket. Per confermare questo ho fatto alcuni test su Ubuntu e psql per provare a generare lo stesso errore (incluso sotto).

Devi controllare i permessi sul file socket e le sue directory /var e /var/pgsql_socket . La tua app Rails (utente OSX) deve avere i permessi di esecuzione (x) su queste directory (preferibilmente concedi i permessi a tutti) e il socket dovrebbe avere i permessi completi (wrx). È possibile utilizzare ls -lAd <file> per controllarli, e se qualcuno di essi è un collegamento simbolico è necessario controllare il file o la directory a cui punta il collegamento.

Puoi modificare i permessi sulla directory per te stesso, ma il socket è configurato da postgres in postgresql.conf . Questo può essere trovato nella stessa directory di pg_hba.conf (Dovrai capire quale). Una volta impostate le autorizzazioni, dovrai riavviare 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.

MODIFICA:

Ho fatto una rapida ricerca su Google che potresti voler esaminare per vedere se è pertinente. Ciò potrebbe comportare qualsiasi tentativo di find il tuo file di configurazione non riesce.

http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html

Messaggi di errore:

Utente non trovato in pg_hba.conf

psql: FATAL:  no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off

Autenticazione password utente non riuscita:

psql: FATAL:  password authentication failed for user "couling"

File socket unix mancante:

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"?

Il socket Unix esiste, ma il server non lo ascolta.

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"?

Permessi file errati su file socket 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"?