it-swarm.com.de

PostgreSQL kann nicht mit pgAdmin mit der entfernten Datenbank verbunden werden

Ich habe PostgreSQL auf meinem lokalen Server (Ubuntu) mit IP 192.168.1.10 installiert. Nun versuche ich von meinem Client-Rechner (Ubuntu) mit IP 192.168.1.11 mit pgAdmin auf die Datenbank zuzugreifen.

Ich weiß, dass ich Änderungen in postgresql.conf und pg_hba.conf vornehmen muss, damit der Client eine Verbindung herstellen kann. Könnten Sie mich bitte führen?

49
vinayrks

Es ist tatsächlich ein dreistufiger Prozess, um über pgAdmin3 eine Remote-Verbindung mit einem PostgreSQL-Server herzustellen. 

Hinweis: Ich verwende Ubuntu 11.04 und PostgreSQL 8.4. 

  1. Sie müssen PostgreSQL auf eingehende TCP - Verbindungen warten lassen, da die Standardeinstellungen nur Verbindungen auf der Loopback-Schnittstelle überwachen. Um den Server aus der Ferne erreichen zu können, müssen Sie die folgende Zeile in die Datei /etc/postgresql/8.4/main/postgresql.conf: einfügen.

    listen_addresses = '*'

  2. PostgreSQL lehnt standardmäßig alle Verbindungen ab, die von einer beliebigen Remoteadresse empfangen werden. Sie müssen diese Regeln lockern, indem Sie diese Zeile zu /etc/postgresql/8.4/main/pg_hba.conf: hinzufügen.

    Host alle 0.0.0.0/0 md5

    Dies ist eine Zugriffssteuerungsregel, mit der sich jeder von jeder Adresse aus anmelden kann, wenn er ein gültiges Kennwort (das Schlüsselwort md5) angeben kann. Sie können anstelle von 0.0.0.0/0 das benötigte Netzwerk/die Maske verwenden.

  3. Wenn Sie diese Änderungen an Ihren Konfigurationsdateien vorgenommen haben, müssen Sie den PostgreSQL-Server neu starten. Jetzt ist es möglich, sich mit Ihrem Benutzernamen und Ihrem Kennwort aus der Ferne auf Ihrem Server anzumelden.

105
Syed Aslam

Wenn Sie PostgreSQL 8 oder höher verwenden, müssen Sie möglicherweise die Einstellung listen_addresses in /etc/postgresql/8.4/main/postgresql.conf ändern.

Versuchen Sie, die Zeile hinzuzufügen:

listen_addresses = *

dadurch wird PostgreSQL angewiesen, Verbindungen zu allen Netzwerkschnittstellen zu überwachen.

Wenn nicht explizit festgelegt, ist diese Einstellung standardmäßig auf localhost gesetzt. Dies bedeutet, dass nur Verbindungen von demselben Computer akzeptiert werden.

8
jwfearn

Ich musste meine prostgresql.conf -Datei nicht ändern, aber ich musste Folgendes tun, weil mein psql über die Befehlszeile verbunden war und pgAdmin keine Verbindung zu RDS mit AWS herstellte. 

Ich habe mein RDS auf "Öffentlich zugänglich" gesetzt. Ich stellte sicher, dass meine ACL- und Sicherheitsgruppen weit offen standen und immer noch ein Problem darstellten. Daher tat ich Folgendes: __.Sudo find . -name *.conf Dann Sudo nano ./data/pg_hba.conf Dann oben in Anweisungen in der Datei pg_hba.conf Host all all 0.0.0.0/0 md5.__ automatisch angemeldet 

Dies funktionierte auch in der Datei pg_hba.conf Host all all md5 ohne IP-Adresse und auch mit meiner IP-Adresse Host all all <myip>/32 md5.

Als Nebenbemerkung befand sich mein RDS in meiner Standard-VPC. Ich hatte eine identische RDS-Instanz in meiner nicht standardmäßigen VPC mit identischen Sicherheitsgruppen-, ACL- und Sicherheitsgruppeneinstellungen zu meiner Standard-VPC, und ich konnte es nicht zum Laufen bringen. Nicht sicher warum, aber für einen anderen Tag. 

1
max56

Für Red Hat Linux

Sudo vi /var/lib/pgsql9/data/postgresql.conf 

pgsql9 ist der Ordner für die installierte Postgres-Version, für andere möglicherweise anders

geändert listen_addresses = '*' von listen_addresses = 'localhost' und dann

Sudo /etc/init.d/postgresql stop
Sudo /etc/init.d/postgresql start
0
Rujoota Shah

Überprüfen Sie Ihre Firewall. Wenn Sie es deaktivieren, können Sie eine Verbindung herstellen. Wenn Sie die Firewall deaktivieren möchten/können, fügen Sie eine Regel für Ihre Remoteverbindung hinzu.

0
user7127267