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

Kan ikke oprette forbindelse til lokal PostgreSQL

Dette ligner virkelig en filtilladelsesfejl. Unix domæne sockets er filer og har brugertilladelser ligesom alle andre. Det ser ud til, at OSX-brugeren, der forsøger at få adgang til databasen, ikke har filtilladelser til at få adgang til socket-filen. For at bekræfte dette har jeg lavet nogle test på Ubuntu og psql for at prøve at generere den samme fejl (inkluderet nedenfor).

Du skal kontrollere tilladelserne på socket-filen og dens mapper /var og /var/pgsql_socket . Din Rails-app (OSX-bruger) skal have udførelsestilladelser (x) på disse mapper (giv helst alle tilladelser), og socket skal have fulde tilladelser (wrx). Du kan bruge ls -lAd <file> for at tjekke disse, og hvis nogen af ​​dem er et symbollink, skal du tjekke filen eller dir, linket peger på.

Du kan selv ændre tilladelserne på dir, men soklen er konfigureret af postgres i postgresql.conf . Dette kan findes i samme mappe som pg_hba.conf (Du skal finde ud af hvilken). Når du har indstillet tilladelserne, skal du genstarte 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.

EDIT:

Jeg har lavet en hurtig søgning på google, som du måske ønsker at se nærmere på for at se, om den er relevant. Dette kan meget vel resultere i ethvert forsøg på at find din konfigurationsfil fejler.

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

Fejlmeddelelser:

Bruger ikke fundet i pg_hba.conf

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

Bruger mislykket adgangskodegodkendelse:

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

Manglende unix-socket-fil:

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 findes, men serveren lytter ikke til det.

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

Dårlige filtilladelser på unix-socket-fil :

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


  1. Udvidede arrangementer for SSAS

  2. Returner den n'te post fra MySQL-forespørgsel

  3. hvordan man får rowNum-lignende kolonne i sqlite IPHONE

  4. Trimningstid fra datetime – en opfølgning