it-swarm.com.de

Wie kann ich mit pgAdmin3 eine Verbindung zu einer entfernten PostgreSQL-Datenbank unter Ubuntu herstellen?

Ich versuche, eine PostgreSQL-Datenbank auf einem Ubuntu-Computer einzurichten. Ich möchte mit pgAdmin3 von einem Remotecomputer aus darauf zugreifen können. Wie richte ich das ein?

Ich habe die PostgreSQL-Datenbank unter Ubuntu installiert mit:

Sudo apt-get install postgresql

In meinem /etc/postgresql/9.1/main/pg_hba.conf habe ich diese Zeile:

Host    all    all    all    password

daher sollte es Verbindungen von allen IPv4-Adressen akzeptieren und Passwörter sollten im Klartext gesendet werden (dies ist aus Entwicklungsgründen).

Wenn ich diesen Befehl ausführe, um zu sehen, welche Dienste ausgeführt werden:

Sudo netstat -tulpn

Ich kann diese Zeilen sehen, die zeigen, dass PostgreSQL Verbindungen auf dem Standardport akzeptiert:

tcp    0    0    127.0.0.1:5432    0.0.0.0:*    LISTEN
3561/postgres

Wenn ich versuche, von einem Remotecomputer im selben lokalen Netzwerk aus eine Verbindung zu diesem PostgreSQL-Server herzustellen, wird folgende Fehlermeldung angezeigt:

Server hört nicht z

Der Server akzeptiert keine Verbindungen: Die Verbindungsbibliothek meldet

konnte keine Verbindung zum Server herstellen: Verbindung abgelehnt Läuft der Server auf Host "10.0.1.7" und akzeptiert er TCP/IP-Verbindungen auf Port 5432?

Ich habe postgres als Benutzernamen und kein Passwort verwendet. Ich habe es aber auch mit postgres als Passwort versucht. Auf dem lokalen Server kann ich mich anmelden mit:

Sudo -u postgres psql postgres

Wie kann ich mit pgAdmin3 von einem Remotecomputer aus eine Verbindung zu einer PostgreSQL-Datenbank herstellen, die unter Ubuntu ausgeführt wird?

22
Jonas

Die Zeile in Ihrem Netstat-Bericht zeigt, dass die Datenbank nur auf localhost: 5432 (127.0.0.1) auf eingehende TCP-Verbindungen wartet.

Proto Recv-Q Send-Q Local Address   Foreign Address  State   PID/Program name
tcp        0      0 127.0.0.1:5432  0.0.0.0:*        LISTEN  3561/postgres

Daher können nur lokale TCP-Verbindungen akzeptiert werden, unabhängig davon, welche Berechtigungen Sie in pg_hba.conf angegeben haben. pg_hba.conf gibt nur zulässige Verbindungen an, gibt jedoch nicht an, welche Schnittstellen Ihr Dienst abhören soll.

Die Adressen, die der Server abhört, werden mit listen_addresses GUC in postgresql.conf angegeben. Wenn der Server auf Remoteverbindungen warten soll, müssen Sie die IP-Adresse (n) angeben, auf die er warten soll, oder *, um alle verfügbaren Schnittstellen auf dem Host abzuhören.

Damit Ihr postgresql-Server alle Schnittstellen auf dem Host abhört, sollte in der postgresql.conf die folgende Zeile stehen:

listen_addresses = '*'
25
dbenhur