Frage

Ich installierte PostgreSQL auf meinem lokalen Server (Ubuntu) mit IP 192.168.1.10. Nun, ich versuche, die Datenbank von meinem Client-Rechner (Ubuntu) mit IP 192.168.1.11 mit pgAdmin zugreifen zu können.

Ich weiß, ich habe zu Veränderungen in postgresql.conf und pg_hba.conf machen den Client eine Verbindung herstellen kann. Könnten Sie mir bitte führen?

War es hilfreich?

Lösung

Es ist tatsächlich ein 3-Schritt-Verfahren zu einem PostgreSQL Server remote über pgAdmin3 zu verbinden.

  

Hinweis: Ich benutze Ubuntu 11.04 und PostgreSQL 8.4.

  1. Sie haben PostgreSQL hören Fern eingehende TCP-Verbindungen zu machen, weil die Standardeinstellung nur für Verbindungen auf der Loopback-Schnittstelle hören lassen. Um den Server zu erreichen Ferne bedienen, müssen Sie die folgende Zeile in die Datei /etc/postgresql/8.4/main/postgresql.conf: hinzufügen

    listen_addresses = '*'

  2. PostgreSQL standardmäßig verweigert alle Verbindungen es von jeder Remote-Adresse erhält, müssen Sie diese Regeln entspannen, indem Sie diese Zeile hinzufügen /etc/postgresql/8.4/main/pg_hba.conf:

    host all all 0.0.0.0/0 md5

    Dies ist eine Zugriffssteuerungsregel, dass jemand von einem beliebigen Adresse anmelden einlassen, wenn er ein gültiges Passwort zur Verfügung stellen kann (das md5 Schlüsselwort). Sie können anstelle von 0.0.0.0/0 benötigten Netzwerk / Maske verwendet werden.

  3. Wenn Sie diese Änderungen an den Konfigurationsdateien angelegt haben Sie PostgreSQL-Server neu starten müssen. Jetzt ist es möglich, remote auf Ihren Server anmelden, die Benutzername und Passwort.

Andere Tipps

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

Versuchen Sie die Zeile hinzufügen:

listen_addresses = *

was wird PostgreSQL sagen für Verbindungen auf allen Netzwerkschnittstellen zu hören.

Wenn nicht explizit festgelegt, ist diese Einstellung standardmäßig auf localhost das heißt, es wird nur Verbindungen von der gleichen Maschine übernehmen.

Ich habe nicht meine prostgresql.conf Datei zu ändern, aber, ich die folgende basiert auf meiner psql über die Kommandozeile zu tun hatte verband und pgAdmin nicht auf RDS mit AWS verbinden.

Ich habe meine RDS auf öffentlich zugänglich. Ich stellte sicher, meine ACL und Sicherheitsgruppen waren weit offen und immer noch Problem so, ich habe folgende: sudo find . -name *.conf dann sudo nano ./data/pg_hba.conf dann zu Anfang der Richtlinien in pg_hba.conf Datei host all all 0.0.0.0/0 md5 und pgAdmin angemeldet mich automatisch in.

Dies ist auch in pg_hba.conf Datei gearbeitet host all all md5 ohne IP-Adresse und dies auch mit meiner IP-Adresse host all all <myip>/32 md5

gearbeitet

Als Randnotiz, war mein RDS in meinem Standard-VPC. Ich hatte eine identische RDS-Instanz in meinem Nicht-Standard-VPC mit identischer Sicherheitsgruppe, ACL und Sicherheitsgruppe Einstellungen meines Standard-VPC und ich konnte nicht bekommen zu arbeiten. Nicht sicher, warum, aber das ist für einen anderen Tag.

In Linux Terminal versuchen Sie dies:

  • sudo service postgresql start: den Server starten
  • sudo service postgresql stop: dir Server
  • stoppen
  • sudo service postgresql status: überprüfen Serverstatus

Für RedHat Linux

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

pgsql9 ist der Ordner für die Postgres-Version installiert ist, könnte für andere anders sein

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

sudo /etc/init.d/postgresql stop
sudo /etc/init.d/postgresql start

Überprüfen Sie Ihre Firewall. Wenn Sie es deaktivieren, dann können Sie eine Verbindung herstellen. Wenn Sie / wollen, können Sie die Firewall nicht deaktivieren, fügen Sie eine Regel für Ihre Remote-Verbindung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top