GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie PostgreSQL unter CentOS 8

PostgreSQL oder Postgres ist ein universelles objektrelationales Open-Source-Datenbankverwaltungssystem mit vielen erweiterten Funktionen, mit denen Sie fehlertolerante Umgebungen oder komplexe Anwendungen erstellen können.

In diesem Handbuch besprechen wir die Installation des PostgreSQL-Datenbankservers unter CentOS 8. Bevor Sie die zu installierende Version auswählen, vergewissern Sie sich, dass Ihre Anwendungen diese unterstützen.

Wir werden auch die Grundlagen der PostgreSQL-Datenbankverwaltung untersuchen.

Voraussetzungen #

Um Pakete installieren zu können, müssen Sie als Root oder Benutzer mit sudo-Berechtigungen angemeldet sein.

Installieren von PostgreSQL unter CentOS 8 #

Zum Zeitpunkt der Erstellung dieses Artikels sind zwei Versionen des PostgreSQL-Servers zur Installation aus den Standard-CentOS-Repositories verfügbar:Version 9.6 und 10.0.

Um die verfügbaren PostgreSQL-Modul-Streams aufzulisten, geben Sie Folgendes ein:

dnf module list postgresql

Die Ausgabe zeigt, dass das postgresql-Modul mit zwei Streams verfügbar ist. Jeder Stream hat zwei Profile:Server und Client. Stream 10 mit dem Profilserver ist der Standard:

CentOS-8 - AppStream
Name          Stream    Profiles              Summary                                                 
postgresql    10 [d]    client, server [d]    PostgreSQL server and client module                     
postgresql    9.6       client, server [d]    PostgreSQL server and client module 
  1. Um den Standardstream zu installieren, geben Sie Version 10.0 des PostgreSQL-Servers ein:

    sudo dnf install @postgresql:10
  2. Um die PostgreSQL-Serverversion 9.6 zu installieren, geben Sie Folgendes ein:

    sudo dnf install @postgresql:9.6 

Möglicherweise möchten Sie auch das Contrib-Paket installieren, das mehrere zusätzliche Funktionen für das PostgreSQL-Datenbanksystem bereitstellt.

sudo dnf install postgresql-contrib

Initialisieren Sie nach Abschluss der Installation die PostgreSQL-Datenbank mit dem folgenden Befehl:

sudo postgresql-setup initdb
Initializing database ... OK

Starten Sie den PostgreSQL-Dienst und aktivieren Sie ihn für den Start beim Booten:

sudo systemctl enable --now postgresql

Verwenden Sie das psql Tool, um die Installation zu überprüfen, indem Sie sich mit dem PostgreSQL-Datenbankserver verbinden und seine Version drucken:

sudo -u postgres psql -c "SELECT version();"
PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit

PostgreSQL-Rollen und Authentifizierungsmethoden #

PostgreSQL handhabt die Datenbankzugriffsberechtigungen unter Verwendung des Konzepts von Rollen. Eine Rolle kann einen Datenbankbenutzer oder eine Gruppe von Datenbankbenutzern darstellen.

PostgreSQL unterstützt mehrere Authentifizierungsmethoden. Die am häufigsten verwendeten Methoden sind:

  • Vertrauen - Eine Rolle kann sich ohne Passwort verbinden, solange die in der pg_hba.conf definierten Bedingungen erfüllt sind erfüllt sind.
  • Passwort – Eine Rolle kann eine Verbindung herstellen, indem sie ein Passwort bereitstellt. Die Passwörter können als scram-sha-256 gespeichert werden , md5 , und password (Klartext).
  • Ident - Wird nur auf TCP/IP-Verbindungen unterstützt. Es funktioniert, indem es den Benutzernamen des Betriebssystems des Clients erhält, mit einer optionalen Benutzernamenzuordnung.
  • Peer - Dasselbe wie Ident, wird aber nur bei lokalen Verbindungen unterstützt.

Die PostgreSQL-Clientauthentifizierung wird in der Konfigurationsdatei mit dem Namen pg_hba.conf definiert . Standardmäßig ist PostgreSQL für lokale Verbindungen auf die Verwendung der Peer-Authentifizierungsmethode eingestellt.

Das postgres Benutzer wird automatisch erstellt, wenn Sie den PostgreSQL-Server installieren. Dieser Benutzer ist der Superuser für die PostgreSQL-Instanz. Es entspricht dem MySQL-Root-Benutzer.

Um sich beim PostgreSQL-Server als postgres anzumelden Benutzer, wechseln Sie zuerst zum Benutzer und greifen Sie dann mit psql auf die PostgreSQL-Eingabeaufforderung zu Dienstprogramm:

sudo su - postgrespsql

Von hier aus können Sie mit der PostgreSQL-Instanz interagieren. Um die PostgreSQL-Shell zu verlassen, geben Sie Folgendes ein:

\q

Sie können auch mit sudo auf die PostgreSQL-Eingabeaufforderung zugreifen, ohne den Benutzer zu wechseln Befehl:

sudo -u postgres psql

Typischerweise das postgres user wird nur vom localhost verwendet.

PostgreSQL-Rolle und -Datenbank erstellen #

Nur Superuser und Rollen mit CREATEROLE Berechtigung kann neue Rollen erstellen.

Im folgenden Beispiel erstellen wir eine neue Rolle mit dem Namen john , eine Datenbank namens johndb , und gewähren Sie Berechtigungen für die Datenbank.

  1. Verbinden Sie sich zuerst mit der PostgreSQL-Shell:

    sudo -u postgres psql
  2. Erstellen Sie mit dem folgenden Befehl eine neue PostgreSQL-Rolle:

    CREATE ROLE john;
  3. Erstellen Sie eine neue Datenbank:

    CREATE DATABASE johndb;
  4. Gewähren Sie dem Benutzer Berechtigungen für die Datenbank, indem Sie die folgende Abfrage ausführen:

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

Aktivieren Sie den Fernzugriff auf den PostgreSQL-Server #

Standardmäßig lauscht der PostgreSQL-Server nur auf der lokalen Schnittstelle 127.0.0.1 .

Um den Fernzugriff auf Ihren PostgreSQL-Server zu aktivieren, öffnen Sie die Konfigurationsdatei:

sudo nano /var/lib/pgsql/data/postgresql.conf

Scrollen Sie nach unten zu CONNECTIONS AND AUTHENTICATION Abschnitt und fügen Sie die folgende Zeile hinzu/bearbeiten Sie sie:

/var/lib/pgsql/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

Speichern Sie die Datei und starten Sie den PostgreSQL-Dienst neu mit:

sudo systemctl restart postgresql

Bestätigen Sie die Änderungen mit ss Dienstprogramm:

ss -nlt | grep 5432
LISTEN   0    128    0.0.0.0:5432    0.0.0.0:*       
LISTEN   0    128    [::]:5432      [::]:*  

Die obige Ausgabe zeigt, dass der PostgreSQL-Server den Standardport auf allen Schnittstellen abhört (0.0.0.0).

Der letzte Schritt besteht darin, den Server so zu konfigurieren, dass er Remote-Verbindungen akzeptiert, indem Sie die pg_hba.conf bearbeiten Datei.

Unten sind einige Beispiele, die verschiedene Anwendungsfälle zeigen:

/var/lib/pgsql/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using an md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb database from all locations using an md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

Cent OS
  1. So installieren Sie den PostgreSQL-Server auf RHEL 8 / CentOS 8

  2. So installieren Sie PostgreSQL unter CentOS 7

  3. So installieren Sie Teamspeak 3 Server auf CentOS 8

  4. So installieren Sie PostgreSQL 10 auf CentOS 6 / RHEL 6

  5. So installieren Sie PostgreSQL-Server auf CentOS 8

So installieren Sie Minecraft Server auf CentOS

So installieren Sie PostgreSQL in CentOS 8

So installieren Sie Nginx unter CentOS

So installieren Sie den PostgreSQL-Datenbankserver CentOS 8

So installieren Sie MySQL 8 unter CentOS 8

So installieren Sie PostgreSQL unter CentOS 6