sql >> Databáze >  >> RDS >> PostgreSQL

Nelze se připojit k místnímu PostgreSQL

Opravdu to vypadá na chybu oprávnění souboru. Unixové doménové sokety jsou soubory a mají uživatelská oprávnění stejně jako všechny ostatní. Vypadá to, že uživatel OSX, který se pokouší o přístup k databázi, nemá oprávnění k souboru pro přístup k souboru soketu. Abych to potvrdil, provedl jsem několik testů na Ubuntu a psql, abych se pokusil vygenerovat stejnou chybu (zahrnuto níže).

Musíte zkontrolovat oprávnění k souboru soketu a jeho adresářům /var a /var/pgsql_socket . Vaše aplikace Rails (uživatel OSX) musí mít oprávnění ke spouštění (x) v těchto adresářích (nejlépe udělte oprávnění všem) a soket by měl mít plná oprávnění (wrx). Můžete použít ls -lAd <file> Chcete-li je zkontrolovat, a pokud je některý z nich symbolický odkaz, musíte zkontrolovat soubor nebo přesměrovat odkaz, na který odkazuje.

Oprávnění k adresáři si můžete změnit sami, ale soket konfiguruje postgres v postgresql.conf . To lze nalézt ve stejném adresáři jako pg_hba.conf (Budete muset přijít na to, který). Jakmile nastavíte oprávnění, budete muset restartovat 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.

UPRAVIT:

Provedl jsem rychlé vyhledávání na google, do kterého se možná budete chtít podívat, abyste zjistili, zda je relaventní. To může vést k jakémukoli pokusu find váš konfigurační soubor selže.

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

Chybové zprávy:

Uživatel nebyl nalezen v pg_hba.conf

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

Uživatel se nezdařilo ověření hesla:

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

Chybí soubor soketu 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"?

Unixový soket existuje, ale server ho neposlouchá.

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

Špatná oprávnění k souboru v souboru soketu 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"?


  1. Velká data s PostgreSQL a Apache Spark

  2. Aktualizujte své heslo PostgreSQL v Linuxu

  3. Spouštějte skripty SQL v prostředí Multitenant s catcon.pl

  4. 7 Možnosti pro povolení Pipes (||) jako operátora zřetězení v MariaDB