PostgreSQL ist ein kostenloses objektrelationales Open-Source-Datenbankverwaltungssystem. Das Ziel dieses Tutorials ist es, eine Installation und grundlegende Konfiguration des PostgreSQL-Servers auf einem Linux-Server mit RHEL 8 / CentOS 8 durchzuführen.
In diesem Tutorial lernen Sie:
- So installieren Sie den PostgreSQL-Datenbankserver auf RHEL 8 / CentOS 8
- So starten und aktivieren Sie den PostgreSQL-Datenbankserver
- Zugriff auf die PostgreSQL-Datenbank von einem lokalen Host und einem entfernten Standort
- So legen Sie das Passwort für das standardmäßige
postgres
fest Benutzer - So aktivieren Sie PostgreSQL, um auf allen Netzwerken zu lauschen
- So sichern Sie eine PostgreSQL-Remoteverbindung mit MD5-Passwortauthentifizierung
- So öffnen Sie den PostgreSQL-Firewall-Port
- Wie man mit
psql
eine Fernverbindung zum PostgreSQL-Server herstellt Kunde
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042507202385.png)
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | RHEL 8 / CentOS 8 |
Software | PostgreSQL-Server 10.5-1.el8 |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Lokale PostgreSQL-Installation und Schritt-für-Schritt-Anleitung für den Datenbankzugriff
- Installieren Sie den PostreSQL-Server. Führen Sie den folgenden
dnf
aus Befehl zum Durchführen einer PostreSQL-Serverpaketinstallation:# dnf install postgresql-server
- PostgreSQL-Datenbank initialisieren:
# postgresql-setup --initdb --unit postgresql * Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
- Starten Sie PostgreSQL und aktivieren Sie es optional für den Start nach dem Neustart.
# systemctl start postgresql # systemctl enable postgresql
Zu diesem Zeitpunkt sollte der PostreSQL-Server betriebsbereit sein und den Localhost-Port
5432
überwachen . Verwenden Siess
Befehl, um zu bestätigen, dass dies der Fall ist:$ ss -nlt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:111 0.0.0.0:* LISTEN 0 32 192.168.122.1:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* LISTEN 0 128 [::]:111 [::]:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 128 [::1]:5432 [::]:*
- Greifen Sie auf die PostreSQL-Datenbank zu. Wenn Sie die PostgreSQL-Datenbank auf Ihrem RHEL 8 / CentOS 8-System installieren, erstellt das Installationsprogramm auch automatisch einen neuen Standardbenutzer
postgres
.Das Standardpasswort für
postgres
user ist nicht gesetzt, daher ist es leer. Um auf die PostgreSQL-Datenbank zuzugreifen, führen Sie zuerstsu
aus Befehl als Root-Benutzer, um zum Postres-Benutzer zu wechseln. Geben Sie dannpsql
ein um sich bei der Datenbank anzumelden.HINWEIS
Jeder Versuch, als Root-Benutzer auf die PostgreSQL-Datenbank zuzugreifen, führt zupsql: FATAL: role "root" does not exist
Fehlermeldung.Beispiel:
# su - postgres $ psql psql (10.5) Type "help" for help. postgres=#
HINWEIS
Um die PostreSQL-Datenbank-Shell zu verlassen, geben Sie\q
ein oder drücken SieCTRL+d
Tastenkombination.
PostgreSQL-Datenbank-Fernzugriff und sichere Verbindung
- Passwort für
postgres
festlegen user.Um remote auf den PostreSQL-Server zuzugreifen, legen wir zunächst ein Passwort fürpostres
fest user:# su - postgres $ psql psql (10.5) Type "help" for help. postgres=# \password postgres Enter new password: Enter it again: postgres=# exit postgres-# \q
- Aktivieren Sie den PostgreSQL-Server, um alle verfügbaren Netzwerke abzuhören. Bearbeiten Sie die Hauptkonfigurationsdatei
/var/lib/pgsql/data/postgresql.conf
:# nano /var/lib/pgsql/data/postgresql.conf
Sobald Sie fertig sind, fügen Sie die folgende Zeile irgendwo zu VERBINDUNGEN UND AUTHENTIFIZIERUNG hinzu Abschnitt:
listen_addresses = '*'
WARNUNG
Die obige Konfiguration ermöglicht es PostreSQL, auf allen verfügbaren Netzwerken zu lauschen. Es wird empfohlen, strengere Regeln festzulegen, um den Zugriff auf PostgreSQL nur von ausgewählten Netzwerken zuzulassen.Verwenden Sie
ss
Befehl, um zu bestätigen, dass PostgreSQL auf0.0.0.0
lauscht Netzwerk:$ ss -nlt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:111 0.0.0.0:* LISTEN 0 32 192.168.122.1:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128 [::]:111 [::]:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 128 [::]:5432 [::]:*
- MD5-verschlüsselte Passwortauthentifizierung aktivieren:
# echo "host all all 0.0.0.0/0 md5" >> /var/lib/pgsql/data/pg_hba.conf
- Änderungen der PostgreSQL-Konfiguration anwenden:
# systemctl restart postgresql
- Öffnen Sie den Firewall-Port
5432
für einen entfernten eingehenden PostgreSQL-Datenverkehr:# firewall-cmd --zone=public --permanent --add-service=postgresql # firewall-cmd --reload
- Stellen Sie von einem entfernten Standort aus eine Verbindung zum PostgreSQL-Datenbankserver her. Installieren Sie zuerst
psql
PostgreSQL-Client-Tool auf Ihrem Remote-Host:RHEL/CENTOS # dnf install postgresql UBUNTU/DEBIAN # apt install postgresql-client
Erstellen Sie eine Remote-Verbindung zum Host, z.
192.168.1.151
alspostgres
Benutzer und Benutzerpasswort wie im obigenSchritt 1 definiert :$ psql -h 192.168.1.151 -U postgres Password for user postgres: psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1), server 10.5) Type "help" for help. postgres=#
ein