sql >> Databasteknik >  >> RDS >> PostgreSQL

FjärrpostgreSQL-anslutning med pgAdmin

Testa först och främst om du kan ansluta till databasen via psql :

psql -h ip_address -d name_of_the_database -U username

Om du får ett felmeddelande om att anslutningen nekades var du tvungen att ställa in något fel och kontrollera Vad ska jag kontrollera om fjärranslutningen till PostgreSQL inte fungerar?

psql: could not connect to server: Connection refused Is the server running on host ip_address

Vad ska jag kontrollera om fjärranslutningen till PostgreSQL inte fungerar?

  1. Kontrollera autentiseringskonfigurationen i pg_hba.conf

    Finns vanligtvis på linux - /etc/postgresql/version/main/pg_hba.conf .Du bör tillåta autentisering för klient för specifik IP allt från alla IP-adresser:

    # Database administrative login by Unix domain socket
    local     all            postgres        peer
    
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    
    # "local" is for Unix domain socket connections only
    local     all            all             peer
    # IPv4 local connections:
    host     all             all             0.0.0.0/0               md5
    # IPv6 local connections:
    host     all             all             ::0/0                   md5
    #all ips
    host     all             all             all                     md5
    

    Mer information om hur du ställer in pg_hba.conf du kan hitta i dokumentationen .

  2. Då bör du ställa in lyssning på en viss port.

    Du måste hitta postgresql.conf . Vanligtvis finns /etc/postgresql/9.1/main/postgresql.conf ) fil och ändra raden med listen_address från:

    #listen_address = ''
    

    till (glöm inte bort # som betyder kommentar):

    listen_address = '*'
    
  3. Efter varje steg bör du starta om Postgresql-tjänsten:

    sudo service postgresql restart
    
  4. Efter steg 2 bör du se port 5432 (eller 5433) i lyssningsadressen efter netstat-kommandot:

    netstat -ntlp
    
  5. Efter det måste du öppna porten för PostgreSQL i brandväggen:

    sudo ufw allow 5432
    

    Du kan kontrollera brandväggsinställningarna med (du bör se 5432 i listan):

    sudo ufw status
    
  6. Om något av de föregående stegen inte fungerar bör du kontrollera om PostgreSQL inte körs på en annan port (vanligtvis 5433) och upprepa de föregående stegen.

    Detta händer väldigt ofta när du har fler versioner av PostgreSQL eller om du uppgraderar databasen och glömde att stoppa den tidigare versionen av PostgreSQL.

Om du har problem med att hitta konfigurationsfiler kan du kolla den här tråden Var är mina postgres *.conf-filer? .



  1. Att ändra MySQL-tabellen för att lägga till en begränsning av främmande nyckel leder till fel

  2. Hur man hittar den första och sista förekomsten av ett specifikt tecken inuti en sträng i PostgreSQL

  3. Oracle-funktion för att uppdatera en tabell, om posten är null så INSERT

  4. Utgått databaslösenord och still-alive-anslutningar