PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Remote-PostgreSQL-Verbindung mit pgAdmin

Testen Sie zunächst, ob Sie sich über psql :

psql -h ip_address -d name_of_the_database -U username

Wenn Sie den Fehler "Verbindung verweigert" erhalten, müssen Sie etwas falsch eingerichtet und die Was soll ich überprüfen, wenn die Remote-Verbindung zu PostgreSQL nicht funktioniert? überprüfen

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

Was sollte ich überprüfen, wenn die Remote-Verbindung zu PostgreSQL nicht funktioniert?

  1. Überprüfen Sie die Authentifizierungskonfiguration in pg_hba.conf

    Befindet sich normalerweise unter Linux - /etc/postgresql/version/main/pg_hba.conf .Sie sollten die Authentifizierung für den Client für bestimmte IP-Adressen von allen IP-Adressen zulassen:

    # 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
    

    Weitere Informationen zum Einrichten von pg_hba.conf finden Sie in der Dokumentation .

  2. Dann sollten Sie das Abhören auf einem bestimmten Port einrichten.

    Sie müssen die postgresql.conf finden . Normalerweise unter /etc/postgresql/9.1/main/postgresql.conf ) Datei und ändern Sie die Zeile mit listen_address von:

    #listen_address = ''
    

    an (vergessen Sie nicht, # zu entfernen, was Kommentar bedeutet):

    listen_address = '*'
    
  3. Nach jedem Schritt sollten Sie den Postgresql-Dienst neu starten:

    sudo service postgresql restart
    
  4. Nach Schritt 2 sollten Sie Port 5432 (oder 5433) in der Überwachungsadresse nach dem netstat-Befehl sehen:

    netstat -ntlp
    
  5. Danach müssen Sie den Port für PostgreSQL in der Firewall öffnen:

    sudo ufw allow 5432
    

    Sie können die Firewall-Einstellungen überprüfen mit (Sie sollten 5432 in der Liste sehen):

    sudo ufw status
    
  6. Wenn einer der vorherigen Schritte nicht funktioniert, sollten Sie überprüfen, ob PostgreSQL nicht auf einem anderen Port (normalerweise 5433) ausgeführt wird, und die vorherigen Schritte wiederholen.

    Dies passiert sehr oft, wenn Sie mehrere Versionen von PostgreSQL ausführen oder wenn Sie die Datenbank aktualisieren und vergessen haben, die vorherige Version von PostgreSQL zu stoppen.

Wenn Sie Probleme haben, Konfigurationsdateien zu finden, können Sie diesen Thread überprüfen Wo sind meine postgres *.conf-Dateien? .