Android

So installieren Sie postgresql auf centos 8

How to Set up Virtual Box and Vagrant on Windows

How to Set up Virtual Box and Vagrant on Windows

Inhaltsverzeichnis:

Anonim

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

In diesem Handbuch wird erläutert, wie der PostgreSQL-Datenbankserver unter CentOS 8 installiert wird. Stellen Sie vor der Auswahl der zu installierenden Version sicher, dass Ihre Anwendungen dies unterstützen.

Wir werden auch die Grundlagen der PostgreSQL-Datenbankadministration untersuchen.

Voraussetzungen

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

PostgreSQL unter CentOS 8 installieren

Zum Zeitpunkt des Schreibens dieses Artikels sind zwei Versionen des PostgreSQL-Servers für die Installation über die Standard-CentOS-Repositorys verfügbar: Version 9.6 und 10.0.

Geben Sie Folgendes ein, um die verfügbaren PostgreSQL-Modul-Streams aufzulisten:

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 die Standardeinstellung:

CentOS-8 - AppStream Name Stream Profiles Summary postgresql 10 client, server PostgreSQL server and client module postgresql 9.6 client, server PostgreSQL server and client module

  1. Geben Sie Folgendes ein, um den Standarddatenstrom von PostgreSQL Server Version 10.0 zu installieren:

    sudo dnf install @postgresql:10

    So installieren Sie den PostgreSQL-Server der Version 9.6:

    sudo dnf install @postgresql:9.6

Möglicherweise möchten Sie auch das Contrib-Paket installieren, das mehrere zusätzliche Funktionen für die PostgreSQL-Datenbank bietet:

sudo dnf install postgresql-contrib

Sobald die Installation abgeschlossen ist, initialisieren Sie die PostgreSQL-Datenbank mit dem folgenden Befehl:

sudo postgresql-setup initdb

Initializing database… OK

Starten Sie den PostgreSQL-Dienst und aktivieren Sie ihn, um ihn beim Booten zu starten:

sudo systemctl enable --now postgresql

Verwenden Sie das psql Tool, um die Installation zu überprüfen, indem Sie eine Verbindung zum PostgreSQL-Datenbankserver herstellen und dessen 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 verwaltet die Datenbankzugriffsberechtigungen nach dem Konzept der 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 eine Verbindung ohne Kennwort herstellen, solange die in der pg_hba.conf pg_hba.conf definierten Bedingungen pg_hba.conf sind. Kennwort - Eine Rolle kann eine Verbindung herstellen, indem ein Kennwort angegeben wird. Die Passwörter können als scram-sha-256 , md5 und password (Klartext) gespeichert werden.Ident - Wird nur bei TCP / IP-Verbindungen unterstützt. Es funktioniert, indem der Benutzername des Client-Betriebssystems mit einer optionalen Benutzernamenszuordnung abgerufen wird. Peer - Wie Ident, wird jedoch nur für lokale Verbindungen unterstützt.

Die PostgreSQL- pg_hba.conf wird in der Konfigurationsdatei mit dem Namen pg_hba.conf . Standardmäßig verwendet PostgreSQL für lokale Verbindungen die Peer-Authentifizierungsmethode.

Der 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 als postgres Benutzer beim PostgreSQL-Server postgres , wechseln Sie zuerst zum Benutzer und greifen Sie dann mit dem Dienstprogramm psql auf die PostgreSQL-Eingabeaufforderung zu:

sudo su - postgres psql

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

\q

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

sudo -u postgres psql

Normalerweise wird der Benutzer postgres nur vom localhost verwendet.

Erstellen von PostgreSQL-Rollen und -Datenbanken

Nur Superuser und Rollen mit CREATEROLE Berechtigungen können neue Rollen erstellen.

Im folgenden Beispiel erstellen wir eine neue Rolle mit dem Namen john , eine Datenbank mit dem Namen johndb , und erteilen Berechtigungen für die Datenbank.

  1. Stellen Sie zunächst eine Verbindung zur PostgreSQL-Shell her:

    sudo -u postgres psql

    Erstellen Sie eine neue PostgreSQL-Rolle mit dem folgenden Befehl:

    create role john;

    Erstellen Sie eine neue Datenbank:

    create database johndb;

    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 Remotezugriff auf den PostgreSQL-Server

Standardmäßig überwacht der PostgreSQL-Server nur die lokale Schnittstelle 127.0.0.1 .

Öffnen Sie die Konfigurationsdatei, um den Remotezugriff auf Ihren PostgreSQL-Server zu aktivieren:

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

CONNECTIONS AND AUTHENTICATION Abschnitt CONNECTIONS AND AUTHENTICATION und fügen Sie die folgende Zeile hinzu bzw. 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

Überprüfen Sie die Änderungen mit dem Dienstprogramm ss :

ss -nlt | grep 5432

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

Die Ausgabe oben zeigt, dass der PostgreSQL-Server auf allen Schnittstellen (0.0.0.0) den Standardport überwacht.

Im letzten Schritt konfigurieren Sie den Server so, dass er pg_hba.conf akzeptiert, indem Sie die Datei pg_hba.conf .

Nachfolgend einige Beispiele für verschiedene Anwendungsfälle:

/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

Fazit

CentOS 8 bietet zwei PostgreSQL-Versionen: 9.6 und 10.0.

Weitere Informationen zu diesem Thema finden Sie in der PostgreSQL-Dokumentation

Centos Postgresql-Datenbank