codestory

Konfigurieren Sie PostgreSQL so, dass Remoteverbindungen zulässig sind

  1. Fernverbindung zu Postgres

1. Fernverbindung zu Postgres

Manchmal stellen Sie eine Fernverbindung zu einer Datenbank Postgres her und erhalten Sie eine Fehlermeldung wie folgt:
could not connect to server: Connection refused (0x0000274D/10061)
Der Grund dafür ist, dass die Datenbank nur lokale Verbindung akzeptiert. Daher müssen Sie Postgres so konfigurieren, dass auch die Fernverbindung akzeptiert werden.
Bevor wir beginnen, ist es wichtig zu wissen, dass es zwei Konfigurationsdateien fibt, die die Funktionsweise von Datenbankserver Postgres steueren, und dass Sie einige Parameter für diese beiden Dateien ändern müssen.
  • postgresql.conf
  • pg_hba.conf
Sie finden die beiden oben genannten Dateien im Ordner:
  • /etc/postgresql/13/main (Linux)
  • C:/Program Files/PostgreSQL/13/data (Windows)
postgresql.conf
Mit der Datei postgresql.conf können Sie die Adresse IP konfigurieren, die Postgres verwendet um nach Verbindung zu suchen. Standardmäßig hört Postgres nur die Adresse des localhost ab. Aus diesem Grund können Sie keine Fernverbindung herstellen.
Öffnen Sie Terminal auf Linux (Ubuntu,..) und gehen Sie zum Ordner, die die Dateien postgresql.conf enthält.
Unter Linux (Ubuntu,..) verwenden Sie den Befehl nano um die Datei postgresql.conf zu öffnen und zu ändern.
sudo nano postgresql.conf
Finden Sie die Linie:
#listen_addresses = "localhost"
Dann ersetzen Sie es durch:
listen_addresses = '*'
Die obige Änderung ermöglicht es Postgres, alle Adresse IP der Computer abzuhören, auf denen sie installiert sind. Sie können auch eine Liste von Abhöradressen (listen addresses) für Postgres angeben, die durch Kommas getrennt sind.
listen_addresses = '192.168.0.1,112.113.10.1'
Drücken Sie, anschließend CTRL + O --> ENTER , um die Änderung zu speichern, und CTRL + X um den nano zu verlassen.
pg_hba.conf
Die Datei pg_hba.conf wird für die Clientauthentifizierung verwendet. Mit anderen Worten, Sie können abgeben, welche Clients eine Verbindung zu Postgres herstellen dürfen. Das Wort HBA steht für "Host-Based Authentication".
Verwenden Sie unter Linux (Ubuntu,..) den Befehl nano , um die Datein pg_hba.conf zu öffnen und zu ändern:
sudo nano pg_hba.conf
Finden Sie die Linie:
# IPv4 local connections:
host     all      all    127.0.0.1/32    md5
Und dann ersetzen Sie es durch:
# IPv4 local connections:
host     all      all    0.0.0.0/0   md5
Mit der obigen Änderung können alle Clients mit Postgres verbunden werden.
Sie können auch konfigurieren, dass einem Bereich IP die Berechtigung zum Herstellen einer Verbindung mit Postgres erteilt wird:
# IPv4 local connections:
host     all      all    112.100.20.1/30   md5
Starten Sie Postgres zum letzten neu, damit die Änderung wirksam werden.
sudo service postgresql stop
sudo service postgresql start
Sehen Sie mehr: