
Ich muss von einem Remotecomputer auf einem VPS bei DigitalOcean mit 12.10 und PostgreSQL 9.1 auf eine PostgreSQL-Datenbank zugreifen.
Wie mache ich das? Mir ist aufgefallen, dass Port 5432 geschlossen ist. Wie öffne ich ihn?
Antwort1
Um den Port 5432 zu öffnen, bearbeiten Sie Ihre /etc/postgresql/9.1/main/postgresql.conf
und ändern Sie
listen_addresses='localhost'
Zu
listen_addresses='*'
und starten Sie Ihr DBMS neu
invoke-rc.d postgresql restart
Jetzt können Sie sich verbinden mit
$ psql -h hostname -U username -d database
Wenn Sie sich nicht authentifizieren können, müssen Sie Ihrem Benutzer Zugriffsrechte auf Ihre Datenbank erteilen
Bearbeiten Sie Ihre
/etc/postgresql/9.1/main/pg_hba.conf
und füge hinzu
host all all all md5
(Dies gilt für einen weit geöffneten Zugang. Für strengere Kontrollen konsultieren Sie diepg_hba.conf-Dokumentationund passen Sie sie Ihren Bedürfnissen entsprechend an).
Hiernach ist auch ein Reload erforderlich
invoke-rc.d postgresql reload
Ich muss nicht erwähnen, dass dies eine Basiskonfiguration ist. Jetzt sollten Sie darüber nachdenken, Ihre Firewall zu ändern und die Sicherheit Ihres DBMS zu verbessern.
Antwort2
Das hier funktioniert nicht mehr (falls es jemals funktioniert hat):
Host alle alle * md5
Die korrekten möglichen Zeilen hierfür sind:
Host alle alle 0.0.0.0/0 md5 #ipv4 Bereich
Host alle alle ::0/0 md5 #ipv6 Bereich
Host alle alle alle MD5 #alle IP
Antwort3
Die Meldung „Server hört nicht zu“ liegt bei mir daran, dass ich die Nummer im Archiv postgresql.conf nicht gelöscht habe. Ich meine:
#listen_addresses='localhost'
Zu:
listen_adressen='*'
(Entschuldigung für mein Englisch).
Antwort4
Nach der Konfiguration müssen Sie Folgendes einstellen:
In/etc/postgresql/10/main/postgresql.conf
# Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
In/etc/postgresql/10/main/pg_hba.conf
# IPv4 local connections:
host all all 0.0.0.0/0 md5
Starten Sie Ihren Server neu:
sudo /etc/init.d/postgresql restart