GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erlauben Sie eine Remoteverbindung zur PostgreSQL-Datenbank mit psql

Wenn Sie PostgreSQL installieren, ist standardmäßig keine Verbindung zur Datenbank über TCP/IP zulässig.

Wenn Sie versuchen, mit dem Befehl psql eine Verbindung von einem Client zu einer entfernten PostgreSQL-Datenbank herzustellen, erhalten Sie möglicherweise die Fehlermeldung „psql:konnte keine Verbindung zum Server herstellen:Verbindung abgelehnt“.

Im folgenden Beispiel versuchen wir, von einem Clientcomputer aus eine Verbindung zu einer PostgreSQL-Datenbank herzustellen, die auf dem Server 192.168.102.1 ausgeführt wird. Wie Sie der Ausgabe entnehmen können, heißt es eindeutig, dass die entfernte PostgreSQL-Datenbank keine Verbindung akzeptiert.

# psql -U postgres -h 192.168.102.1
psql: could not connect to server: Connection refused
        Is the server running on host "192.168.102.1" and accepting
        TCP/IP connections on port 5432?

Um die TCP/IP-Verbindung für die PostgreSQL-Datenbank zu aktivieren, müssen Sie die beiden unten aufgeführten Schritte ausführen.

1. Ändern Sie pg_hba.conf, um Client Authentication Record hinzuzufügen

Auf dem PostgreSQL-Datenbankserver werden Sie standardmäßig die folgenden Einträge am Ende von /var/lib/pgsql/data/pg_hba.conf bemerken. Wie unten angegeben, akzeptiert es nur Verbindungen vom localhost.

# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               ident

Fügen Sie dem pg_hba.conf-Server die folgende Zeile hinzu. Dies ermöglicht die Verbindung von der IP-Adresse „192.168.101.20“ (in unserem Beispiel ist dies der Client). Wenn Sie Verbindungen von mehreren Client-Rechnern in einem bestimmten Netzwerk zulassen möchten, geben Sie hier die Netzwerkadresse im CIDR-Adressformat an.

# vi  /var/lib/pgsql/data/pg_hba.conf
host    all         all         192.168.101.20/24    trust

Im Folgenden werden verschiedene Client-Authentifizierungsdatensatzformate aufgeführt, die in der Datei pg_hba.conf unterstützt werden. Wir verwenden das #2-Format aus dieser Liste.

  • lokale Datenbankbenutzer-Authentifizierungsmethode [Authentifizierungsoption]
  • Hostdatenbankbenutzer CIDR-Adresse Authentifizierungsmethode [Authentifizierungsoption]
  • hostssl-Datenbankbenutzer CIDR-Adresse Authentifizierungsmethode [Authentifizierungsoption]
  • hostnossl-Datenbankbenutzer CIDR-Adresse Authentifizierungsmethode [Authentifizierungsoption]

Anstelle des Formats „CIDR-Adresse“ können Sie die IP-Adresse und die Netzwerkmaske auch in separaten Feldern angeben, indem Sie das folgende Datensatzformat verwenden.

  • Hostdatenbankbenutzer IP-Adresse IP-Maske Authentifizierungsmethode [Authentifizierungsoption]
  • Hostssl-Datenbankbenutzer IP-Adresse IP-Maske Authentifizierungsmethode [Authentifizierungsoption]
  • Hostnossl-Datenbankbenutzer IP-Adresse IP-Maske Authentifizierungsmethode [Authentifizierungsoption]

2. Ändern Sie die Listen-Adresse in postgresql.conf

Auf dem PostgreSQL-Datenbankserver ist die Abhöradresse standardmäßig localhost in der postgresql.conf-Datei, wie unten gezeigt.

# grep listen /var/lib/pgsql/data/postgresql.conf
listen_addresses = 'localhost'

Ändern Sie diese Zeile und geben Sie *. Wenn Sie mehrere Schnittstellen auf dem Server haben, können Sie auch eine bestimmte zu überwachende Schnittstelle angeben.

# grep listen /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'

3. Testen Sie die Remote-Verbindung

Melden Sie sich nun beim Client-Computer 192.168.101.20 an und führen Sie die psql-Remoteverbindung zum PostgreSQL-Datenbankserver (192.168.102.1) wie unten gezeigt durch. Diesmal sollte es funktionieren.

# psql -U postgres -h 192.168.102.1
Welcome to psql 8.1.11 (server 8.4.18), the PostgreSQL interactive terminal.
postgres=#

Wenn Sie den Hostnamen nicht jedes Mal im Befehlszeilenparameter angeben möchten, können Sie die IP-Adresse der entfernten PostgreSQL-Datenbank im PGHOST-Umgebungsvariablennamen wie unten gezeigt einrichten.

# export PGHOST=192.168.102.1
# psql -U postgres
Welcome to psql 8.1.11 (server 8.4.18), the PostgreSQL interactive terminal.
postgres=#

Linux
  1. So melden Sie sich über die Befehlszeile bei einer Postgresql-Datenbank an

  2. So durchsuchen Sie eine Datenbank mit phpMyAdmin

  3. So sichern und wiederherstellen Sie eine Datenbank in PostgreSQL

  4. So erlauben Sie eine Remote-Verbindung zum MySQL-Datenbankserver

  5. Wie füge ich eine Remote-MySQL-Verbindung unter Linux hinzu?

So installieren Sie PostgreSQL 14 in RHEL 8 Linux

So erlauben Sie den Fernzugriff auf den MySQL-Datenbankserver

Wie erlaube ich eine Remote-Verbindung zum MySQL-Server in cPanel/WHM-Server?

Wie erstelle ich eine PostgreSQL-Datenbank?

Remote-MySQL in cPanel

So installieren Sie die PostgreSQL-Datenbank und pgAdmin unter Linux