sql >> Database >  >> RDS >> PostgreSQL

Kan geen verbinding maken met lokale PostgreSQL

Dit lijkt echt op een bestandspermissiefout. Unix-domeinsockets zijn bestanden en hebben net als alle andere gebruikersrechten. Het lijkt erop dat de OSX-gebruiker die toegang probeert te krijgen tot de database, geen bestandsrechten heeft om toegang te krijgen tot het socketbestand. Om dit te bevestigen heb ik wat tests gedaan op Ubuntu en psql om te proberen dezelfde fout te genereren (hieronder opgenomen).

U moet de machtigingen voor het socketbestand en de bijbehorende mappen /var . controleren en /var/pgsql_socket . Je Rails-app (OSX-gebruiker) moet uitvoeringsrechten (x) hebben voor deze mappen (bij voorkeur iedereen rechten geven) en de socket moet volledige rechten hebben (wrx). U kunt ls -lAd <file> . gebruiken om deze te controleren, en als een van hen een symbolische link is, moet je het bestand controleren of de link verwijzen naar.

U kunt de machtigingen op de dir zelf wijzigen, maar de socket wordt geconfigureerd door postgres in postgresql.conf . Dit is te vinden in dezelfde map als pg_hba.conf (Je moet uitzoeken welke). Zodra je de rechten hebt ingesteld, moet je postgresql opnieuw 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.

BEWERKEN:

Ik heb snel gezocht op google, waar je misschien naar wilt kijken om te zien of het relavent is. Dit kan resulteren in elke poging om find uw configuratiebestand mislukt.

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

Foutmeldingen:

Gebruiker niet gevonden in pg_hba.conf

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

Gebruiker mislukt wachtwoord auth:

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

Unix-socketbestand ontbreekt:

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 bestaat, maar de server luistert er niet naar.

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

Onjuiste bestandsrechten op unix socket-bestand :

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. Een database maken in SQLite

  2. Ontsnappen aan trefwoordachtige kolomnamen in Postgres

  3. Framework van een Apache Spark Job Run!

  4. Een databasemodel voor een online enquête. Deel 4