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

So installieren und konfigurieren Sie Postgres 13 auf Centos 8

PostgreSQL ist ein leistungsstarkes, objektrelationales Open-Source-Datenbanksystem mit über 30 Jahren aktiver Entwicklung, das sich einen guten Ruf für Zuverlässigkeit, Funktionsrobustheit und Leistung erworben hat. Postgres ist ein kostenloses und quelloffenes Verwaltungssystem für relationale Datenbanken, das auf Erweiterbarkeit und SQL-Konformität Wert legt. Es hieß ursprünglich POSTGRES und bezog sich auf seinen Ursprung als Nachfolger der Ingres-Datenbank, die an der University of California, Berkeley, entwickelt wurde. PostgreSQL wird als primärer Datenspeicher oder Data Warehouse für viele Web-, Mobil-, Geodaten- und Analyseanwendungen verwendet. PostgreSQL kann strukturierte und unstrukturierte Daten in einem einzigen Produkt speichern.

Prüfen Sie auch diese:

  • Postgres-Berechtigungen – Datenbankbenutzer erstellen, aktualisieren, löschen
  • So installieren und konfigurieren Sie Postgres 14 auf Centos 8
  • Postgresql 14 mit Docker und Docker-Compose ausführen
  • So installieren und konfigurieren Sie Postgres 13 Ubuntu 20.04

Voraussetzungen

Um mitzumachen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  1. Centos 8 / Rocky Linux 8 / RHEL 8-basierter Server
  2. Root-Zugriff auf den Server oder Benutzer mit Root-Zugriff
  3. Internetzugang vom Server
  4. Grundkenntnisse des Linux-Terminals

Inhaltsverzeichnis

  1. Stellen Sie sicher, dass der Server auf dem neuesten Stand ist
  2. Postgres-Server installieren und starten
  3. Authentifizierungsmethoden für PostgreSQL-Rollen und -Datenbanken
  4. Verbindung zur Postgres-Datenbank herstellen
  5. Postgres 14-Instanz für Fernzugriff konfigurieren
  6. Benutzerverwaltung

1. Stellen Sie sicher, dass der Server auf dem neuesten Stand ist

Bevor wir fortfahren, stellen wir sicher, dass unser Server über aktuelle Pakete verfügt. Verwenden Sie diesen Befehl:

$ sudo dnf -y update
Last metadata expiration check: 2:52:07 ago on Wed 06 Oct 2021 01:26:21 AM UTC.
Dependencies resolved.
Nothing to do.
Complete! 

Postgres-Server installieren und starten

Listen Sie die verfügbaren Streams für das postgresql-Modul mit dem dnf-Befehl auf:

dnf module list postgresql 

Ausgabe:

# dnf module list postgresql

Name                    Stream              Profiles                        Summary
postgresql              9.6                 client, server [d]              PostgreSQL server and client module
postgresql              10 [d]              client, server [d]              PostgreSQL server and client module
postgresql              12                  client, server [d]              PostgreSQL server and client module
postgresql              13                  client, server [d]              PostgreSQL server and client module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled 

das mit [d] gekennzeichnete Modul ist die Standardeinstellung, daher wird die Installation von Postgres ohne Angabe von Stream dies installieren. In unserem Fall installiert der folgende Befehl postgres 10

sudo dnf install @postgresql 

Dies ist die installierte Version

$ sudo dnf list installed | grep postgres
postgresql.x86_64                   10.17-1.module_el8.4.0+823+f0dbe136     @appstream
postgresql-server.x86_64            10.17-1.module_el8.4.0+823+f0dbe136     @appstream 

Da das nicht das Paket ist, das ich will, werde ich es hiermit deinstallieren

sudo dnf erase -y @postgresql 

Lassen Sie uns nun postgresql 13 installieren. Wir werden zuerst das postgresql-Modul zurücksetzen, um sicherzustellen, dass keines installiert ist.

sudo dnf module reset postgresql

sudo dnf install @postgresql:13 

Lassen Sie uns 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 postgresql-setup --initdb --unit postgresql 

Ausgabe:

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log 

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

sudo systemctl enable --now postgresql 

Überprüfen Sie den Status der Datenbank

# systemctl status postgresql
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-08-05 08:15:07 UTC; 7s ago
  Process: 68683 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
 Main PID: 68686 (postmaster)
    Tasks: 8 (limit: 23506)
   Memory: 17.3M
   CGroup: /system.slice/postgresql.service
           ├─68686 /usr/bin/postmaster -D /var/lib/pgsql/data
           ├─68687 postgres: logger
           ├─68689 postgres: checkpointer
           ├─68690 postgres: background writer
           ├─68691 postgres: walwriter
           ├─68692 postgres: autovacuum launcher
           ├─68693 postgres: stats collector
           └─68694 postgres: logical replication launcher

Aug 05 08:15:07 prod-db systemd[1]: Starting PostgreSQL database server...
Aug 05 08:15:07 prod-db postmaster[68686]: 2021-08-05 08:15:07.650 UTC [68686] LOG:  redirecting log output to logging collector process
Aug 05 08:15:07 prod-db postmaster[68686]: 2021-08-05 08:15:07.650 UTC [68686] HINT:  Future log output will appear in directory "log".
Aug 05 08:15:07 prod-db systemd[1]: Started PostgreSQL database server. 

Der Active: active (running) zeigt, dass unser Postgres-Server wie erwartet hochgefahren ist und läuft.

Überprüfen Sie die Installation, indem Sie sich mit dem PostgreSQL-Datenbankserver verbinden und seine Version drucken:

sudo -u postgres psql -c "SELECT version();" 

Ausgabe:

version ------------------------------------------------------------------------------------------------------------ PostgreSQL 13.3 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5), 64-bit (1 row)

3. Authentifizierungsmethoden für PostgreSQL-Rollen und -Datenbanken

PostgreSQL verwendet ein Konzept namens roles um die Client-Authentifizierung und -Autorisierung zu handhaben. Postgres ist standardmäßig so eingerichtet, dass es die ident authentication verwendet , was bedeutet, dass es Postgres-Rollen mit einem übereinstimmenden Unix/Linux-Systemkonto verknüpft. Wenn eine Rolle in Postgres existiert, kann sich ein Unix/Linux-Benutzername mit demselben Namen als diese Rolle anmelden.

Beim Installationsvorgang wurde ein Benutzerkonto mit dem Namen postgres erstellt, das der standardmäßigen postgres-Rolle zugeordnet ist. Um PostgreSQL zu verwenden, können Sie sich bei diesem Konto anmelden.

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

  • Trust – Eine Rolle kann sich ohne Passwort verbinden, solange die in der pg_hba.conf definierten Bedingungen erfüllt sind erfüllt sind.
  • Password – Eine Rolle kann sich verbinden, indem sie ein Passwort angibt. Die Passwörter können als scram-sha-256 gespeichert werden , md5 , und Password (clear-text ).
  • Ident – Wird nur bei 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 auf lokalen Verbindungen unterstützt.

4. Verbindung zur Postgres-Datenbank herstellen

Es gibt eine Reihe von Möglichkeiten, sich als Postgres-Benutzer mit dem Postgres-Server zu verbinden:

  1. Durch Wechsel zu postres user
    Wechseln Sie zum Postgres-Konto auf Ihrem Server, indem Sie Folgendes eingeben:

    sudo -i -u postgres 

    Sie können jetzt sofort auf eine Postgres-Eingabeaufforderung zugreifen, indem Sie Folgendes eingeben:

    
    [[email protected]-server ~]$ psql
    psql (13.3)
    Type "help" for help. 

postgres=#

This will log you into the PostgreSQL prompt, and from here you are free to interact with the database management system right away.

2. By running the command as postgres user

Use this to run the command directly as the postgres auszuführen Benutzer, der sudo```bashsudo -u postgres psql verwendet 

5. Postgres 14-Instanz für Fernzugriff konfigurieren

Um dies zu erreichen, werden wir Postgres-Konfigurationsdateien ändern. Wir müssen die Dateien öffnen und die Konfigurationen anpassen, die erforderlich sind.

Die Konfigurationsdatei von Postgresql 13 befindet sich in diesem Pfad /var/lib/pgsql/data/pg_hba.conf .

Ändern Sie die Peer-Identifikation in vertrauen:

sed -i '/^local/s/peer/trust/' /var/lib/pgsql/data/pg_hba.conf 

Ändern Sie die Ident-Identifikation in md5

sed -i '/^host/s/ident/md5/' /var/lib/pgsql/data/pg_hba.conf 

Fügen Sie einen Block hinzu, um den Zugriff von überall zu ermöglichen:

Fügen Sie diesen Inhalt der Datei /var/lib/pgsql/data/pg_hba.conf hinzu

host    all             all             0.0.0.0/0                md5 

Stellen Sie sicher, dass PostgreSQL auf * lauscht.
Fügen Sie diese Zeile hier zur Konfiguration hinzu /var/lib/pgsql/data/postgresql.conf

listen_addresses='*' 

Postgresql-Server aktivieren und neu starten, um die Konfigurationen neu zu laden

sudo systemctl restart postgresql
sudo systemctl enable postgresql 

6. Benutzerverwaltung

Superuser erstellen

Lassen Sie uns einen Benutzer mit Superuser-Rechten erstellen, mit dem wir Postgres verwalten können.

Mit der DB als Postres-Rolle verbinden

$ sudo -u postgres psql
psql (13.3)
Type "help" for help.

postgres=# ein 

Erstellen Sie einen Superuser mit dem Namen root :

CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere'; 

Überprüfen Sie den Benutzer, ob er erstellt wurde und ihm die erforderlichen Berechtigungen erteilt wurden:

postgres=# CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'MrBpR89Yskv3hofGLP';
CREATE ROLE
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 root      | Superuser, Create role, Create DB                          | {} 

Anwendungsbenutzer verwalten

Verwenden Sie dies, um eine Datenbank zu erstellen, erstellen Sie einen Benutzer und gewähren Sie diesem Benutzer alle Zugriffe auf diese Datenbank:

create database app_db_name;
create user app_user with encrypted password 'dbpassword';
grant all privileges on database app_db_name to app_user; 

Sehen Sie sich diese umfassende Anleitung zur Benutzer- und Berechtigungsverwaltung in Postgres hier an.

Verbindung zur Instanz vom Remote-Host herstellen

Verwenden Sie diesen Befehl, um vom lokalen Computer aus eine Verbindung zur Postgres-Instanz herzustellen:

psql 'postgres://<username>:<password>@<host>:<port>/<db>?sslmode=disable'

# like
psql 'postgres://root:[email protected]:5432/postgres?sslmode=disable' 

Schlussfolgerung

Bis zu diesem Punkt haben wir es geschafft, Postgresql13 auf einem Ubuntu-Server zu installieren, einige grundlegende Konfigurationen vorzunehmen und dann die grundlegende Benutzerverwaltung durchzuführen.


Cent OS
  1. So installieren und konfigurieren Sie Gitlab unter CentOS 8

  2. So installieren und konfigurieren Sie Postgres 13 Ubuntu 20.04

  3. So installieren und konfigurieren Sie Postgres 13 auf Centos 8

  4. So installieren und konfigurieren Sie Postgres 14 Ubuntu 20.04

  5. So installieren und konfigurieren Sie Postgres 14 auf Fedora 34

So installieren und konfigurieren Sie den VNC-Server unter CentOS 7

So installieren und konfigurieren Sie Zimbra Multi Server unter CentOS 7

So installieren und konfigurieren Sie den VNC-Server in CentOS 7 / RHEL 7

So installieren und konfigurieren Sie Memcached unter CentOS 8

So installieren und konfigurieren Sie den DHCP-Server auf Centos 8

So installieren und konfigurieren Sie VNC Server unter CentOS/RHEL 8