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

So installieren und konfigurieren Sie Postgres 14 auf Fedora 34

Es hieß ursprünglich POSTGRES und bezog sich auf seine Ursprünge 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.

In dieser Anleitung werden wir Postgresql 14 in Fedora 34 installieren.

Verwandte Inhalte

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

Voraussetzungen

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

  1. Aktualisierter Fedora 34-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:55:24 ago on Tue 26 Oct 2021 12:05:29 PM UTC.
Dependencies resolved.
Nothing to do.
Complete!

2. Postgres-Server installieren und starten

Das Fedora dnf Postgres-Modul enthält eine Postgres 14-Installation, aber es ist nicht die Standardinstallation. Lassen Sie uns das Postges-Modul auf Fedora mit diesem Befehl überprüfen:

$ sudo dnf module list postgresql
Last metadata expiration check: 2:56:45 ago on Tue 26 Oct 2021 12:05:29 PM UTC.
Fedora Modular 34 - x86_64
Name                                                              Stream                                                        Profiles                                                                 Summary
postgresql                                                        9.6                                                           client, server [d]                                                       PostgreSQL module
postgresql                                                        10                                                            client, server [d]                                                       PostgreSQL module
postgresql                                                        11                                                            client, server [d]                                                       PostgreSQL module
postgresql                                                        12                                                            client, server                                                           PostgreSQL module
postgresql                                                        13                                                            client, server                                                           PostgreSQL module

Fedora Modular 34 - x86_64 - Updates
Name                                                              Stream                                                        Profiles                                                                 Summary
postgresql                                                        9.6                                                           client, server [d]                                                       PostgreSQL module
postgresql                                                        10                                                            client, server [d]                                                       PostgreSQL module
postgresql                                                        11                                                            client, server [d]                                                       PostgreSQL module
postgresql                                                        12                                                            client, server                                                           PostgreSQL module
postgresql                                                        13                                                            client, server                                                           PostgreSQL module
postgresql                                                        14                                                            client, server                                                           PostgreSQL module

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

Das heißt, um es zu verwenden, müssen Sie es aktivieren. Setzen Sie zuerst das Postgres-Modul zurück, damit wir keinen Standard haben

sudo dnf module reset postgresql

Aktivieren Sie dann Postgres 14 mit diesem Befehl:

$ sudo dnf module enable postgresql:14
Last metadata expiration check: 3:03:33 ago on Tue 26 Oct 2021 12:05:29 PM UTC.
Dependencies resolved.
================================================================================================================================================================================================================================================================================
 Package                                                           Architecture                                                     Version                                                             Repository                                                         Size
================================================================================================================================================================================================================================================================================
Enabling module streams:
 postgresql                                                                                                                         14

Transaction Summary
================================================================================================================================================================================================================================================================================

Is this ok [y/N]: y
Complete!

Lassen Sie uns nun Postgresql 14 und das Contrib-Paket installieren, das mehrere zusätzliche Funktionen für das PostgreSQL-Datenbanksystem bereitstellt:

sudo dnf install -y postgresql-server postgresql-contrib

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

$ sudo postgresql-setup initdb
WARNING: using obsoleted argument syntax, try --help
WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

Starten Sie nun den Dienst:

sudo systemctl start postgresql

Aktivieren Sie dann den Dienst, damit er beim Neustart des Servers gestartet wird:

$ sudo systemctl enable postgresql
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.

Bestätigen Sie, dass Postgres 14 ausgeführt wird:

$ sudo systemctl status postgresql
● postgresql.service - PostgreSQL database server
     Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
     Active: active (running) since Tue 2021-10-26 15:18:53 UTC; 46s ago
    Process: 17645 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
   Main PID: 17647 (postmaster)
      Tasks: 8 (limit: 4603)
     Memory: 15.7M
        CPU: 47ms
     CGroup: /system.slice/postgresql.service
             ├─17647 /usr/bin/postmaster -D /var/lib/pgsql/data
             ├─17648 postgres: logger
             ├─17650 postgres: checkpointer
             ├─17651 postgres: background writer
             ├─17652 postgres: walwriter
             ├─17653 postgres: autovacuum launcher
             ├─17654 postgres: stats collector
             └─17655 postgres: logical replication launcher

Oct 26 15:18:52 ip-10-2-40-182.us-west-2.compute.internal systemd[1]: Starting PostgreSQL database server...
Oct 26 15:18:52 ip-10-2-40-182.us-west-2.compute.internal postmaster[17647]: 2021-10-26 15:18:52.998 UTC [17647] LOG:  redirecting log output to logging collector process
Oct 26 15:18:52 ip-10-2-40-182.us-west-2.compute.internal postmaster[17647]: 2021-10-26 15:18:52.998 UTC [17647] HINT:  Future log output will appear in directory "log".
Oct 26 15:18:53 ip-10-2-40-182.us-west-2.compute.internal systemd[1]: Started PostgreSQL database server.

Der Active: active (running) zeigt an, dass der Dienst aktiv ist.

Als Nächstes überprüfen wir, ob die Installation erfolgreich war, indem wir eine Verbindung zum PostgreSQL-Datenbankserver herstellen und seine Version drucken:

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

Ausgabe:

$ sudo -u postgres psql -c "SELECT version();"
could not change directory to "/home/fedora": Permission denied
                                                   version
--------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.0 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 11.2.1 20210728 (Red Hat 11.2.1-1), 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 mit dem standardmäßigen postgres verknüpft ist Rolle. 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

  1. Durch Wechsel zu postres Benutzer

Wechseln Sie zum postgres-Konto auf Ihrem Server, indem Sie Folgendes in das Terminal eingeben;:

sudo -i -u postgres

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

$ psql
psql (14.0)
Type "help" for help.

postgres=#

Dadurch werden Sie bei der PostgreSQL-Eingabeaufforderung angemeldet, und von hier aus können Sie sofort mit dem Datenbankverwaltungssystem interagieren.

2. Durch Ausführen des Befehls als postgres Benutzer

Verwenden Sie dies, um den Befehl direkt als postgres auszuführen Benutzer mit sudo

sudo -u postgres psql

Ausgabe:

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

postgres=#

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 erforderlichen Konfigurationen anpassen. Die Hauptkonfigurationsdatei für Postgresql 14 finden Sie in diesem Pfad /var/lib/pgsql/14/data/pg_hba.conf

Ändern wir die Peer-Identifikation in Trust:

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

Ändern Sie die Ident-Identifikation in md5, um die Anmeldung mit Passwort zu ermöglichen.

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

Nachdem alles eingerichtet ist, erstellen wir einen Superuser.
Verbinden Sie sich mit der DB als postres-Rolle:

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

postgres=#

Erstellen Sie einen Superuser mit dem Namen root :

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

Ausgabe:

postgres=# CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';
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                          | {}

postgres=#

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, Postgresql 14 auf einem Fedora 34-Server zu installieren, einige grundlegende Konfigurationen vorzunehmen und dann die grundlegende Benutzerverwaltung durchzuführen.


Fedora
  1. So installieren und konfigurieren Sie Postgres 13 Ubuntu 20.04

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

  3. So installieren und konfigurieren Sie Postgres 14 Ubuntu 20.04

  4. So installieren und konfigurieren Sie Postgres 14 unter Debian 11

  5. So installieren und konfigurieren Sie Mariadb in Fedora 35

So installieren und konfigurieren Sie Nextcloud auf Fedora 32

So installieren Sie PostgreSQL und phpPgAdmin auf Fedora 34

So installieren Sie Fedora 34 Server

So installieren Sie PostgreSQL 14 unter Fedora Linux

So installieren und konfigurieren Sie PostgreSQL unter Ubuntu

So installieren Sie PostgreSQL auf Fedora 35