Wie man PostgreSQL 13 auf Rocky Linux installiert und benutzt

PostgreSQL ist ein freies und quelloffenes Datenbankmanagementsystem mit Fokus auf Erweiterbarkeit und SQL-Konformität. PostgreSQL ist ein fortschrittliches RDBMS (Relational Database Management System) der Enterprise-Klasse und unterstützt sowohl SQL (relational) als auch JSON (nicht-relational) Abfragen.

Es ist ein hochstabiles Datenbankmanagementsystem, das auf mehr als 20 Jahre Entwicklung durch die Open-Source-Community zurückblicken kann und unter Entwicklern und Systemadministratoren einen guten Ruf für seine Zuverlässigkeit, Flexibilität, Robustheit der Funktionen und Leistung genießt.

PostgreSQL wird als primäre Datenbank für Webanwendungen, mobile Anwendungen und analytische Anwendungen verwendet. Einige bemerkenswerte PostgreSQL Nutzer rund um den Globus sind Reddit, Skype, Instagram, Disqus, The Guardian, Yandex, Bloomberg, Nokia, BMW, etc.

In dieser Anleitung lernst du, wie du die PostgreSQL Datenbank auf Rocky Linux installierst, wie du den Einsatz der PostgreSQL Datenbank absicherst und wie du die grundlegenden PostgreSQL Abfragen zur Verwaltung von Benutzern und Datenbanken verwendest.

Voraussetzungen

  • Ein Rocky Linux System.
  • Ein Benutzer mit root oder sudo Rechten. Dieser Benutzer wird für die Installation neuer Pakete und für systemweite Änderungen verwendet.

Hinzufügen des PostgreSQL Repositorys

Für diese Anleitung wirst du die letzte stabile Version von PostgreSQL v13.4 installieren. Diese Version ist im offiziellen PostgreSQL Repository verfügbar, also musst du das PostgreSQL Repository zu deinem Rocky Linux System hinzufügen.

1. Füge das offizielle PostgreSQL Repository für das Rocky Linux System hinzu, indem du den folgenden Befehl ausführst.

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2. Als nächstes führe den folgenden Befehl aus, um zu überprüfen, ob das PostgreSQL Repository auf deinem System verfügbar ist.

sudo dnf -qy repolist

Wenn das PostgreSQL Repository auf deinem System verfügbar ist, wirst du mehrere Versionen von PostgreSQL Repositories sehen, wie im Screenshot unten.

PostgreSQL Repository hinzufügen und überprüfen

Installation von PostgreSQL 13 auf Rocky Linux

Um PostgreSQL aus dem offiziellen PostgreSQL Repository installieren zu können (nicht aus dem Rocky Linux Repository), musst du das eingebaute PostgreSQL Repository Modul deaktivieren.

1. Führe den folgenden Befehl aus, um das eingebaute PostgreSQL Modul Repository zu deaktivieren.

sudo dnf module -qy disable postgresql

Der Befehl wird den DNF-Befehl im quiet mode ausführen und alle gpg-Schlüssel(Option -qy) für PostgreSQL-Repositories akzeptieren.

Eingebautes PostgreSQL Repository abschalten rocky linux

2. Danach installiere die neueste Version von PostgreSQL 13.4 aus dem PostgreSQL Repository mit dem folgenden dnf-Befehl.

sudo dnf install postgresql13-server

Gib‚y‚ ein und drücke‚Enter‚, um die PostgreSQL 13.x zu installieren.

PostgreSQL 13 auf Rocky Linux installieren

Warte dann auf die Installation von PostgreSQL.

PostgreSQL Datenbank Initialisierung

Als nächstes, nachdem die PostgreSQL Installation abgeschlossen ist, musst du die PostgreSQL Konfiguration initialisieren und dann den PostgreSQL Dienst starten und aktivieren.

1. Führe den folgenden Befehl aus, um die PostgreSQL-Datenbankkonfiguration zu initialisieren.

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

Initialisiere die PostgreSQL Datenbank Konfiguration

2. Danach starte und aktiviere den PostgreSQL-Dienst mit dem folgenden Befehl.

sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13

Nun ist der PostgreSQL Dienst aktiv und läuft und wird bei jedem Start automatisch ausgeführt.

3. Führe nun den unten stehenden Befehl aus, um den PostgreSQL Dienst zu überprüfen.

sudo systemctl status postgresql-13

Wenn dein PostgreSQL Dienst läuft, siehst du die grüne Ausgabe wie „active(running)“, wie unten. Andernfalls siehst du die rote Ausgabe wie„failed“ gefolgt von den Fehlermeldungsprotokollen.

Starte und aktiviere den PostgreSQL Dienst und überprüfe seinen Status

Absicherung des PostgreSQL Deployments

Während der Installation wird PostgreSQL einen neuen Systembenutzer und einen Datenbankbenutzer mit dem Namen„postgres“ erstellen. Und für diesen Schritt wirst du ein neues Passwort für den„postgres“ Benutzer einrichten, sowohl für den Systembenutzer als auch für den Datenbankbenutzer.

1. Ändere das Passwort für den Standard-Systembenutzer„postgres“ mit dem folgenden Befehl.

passwd postgres

Gib nun das neue Passwort für den Systembenutzer„postgres“ ein.

2. Um das Passwort für den Datenbankbenutzer„postgres“ zu ändern, musst du dich als nächstes in die PostgreSQL-Shell einloggen.

Melde dich zunächst als Systembenutzer„postgres“ mit dem folgenden Befehl an.

su - postgres

Melde dich nun in der PostgreSQL-Shell mit dem folgenden psql-Befehl an.

psql

Führe die folgende Abfrage aus, um ein neues Passwort für den Standard-Datenbankbenutzer„postgres“ zu erstellen.

ALTER USER postgres WITH PASSWORD 'strongpostgrespassword';

Gib nun exit ein und drücke„Strg+d„, um die„postgres„-Benutzershell zu verlassen und dich abzumelden.

Ändere das postgres Passwort für den System Benutzer und den Datenbank Benutzer

Authentifizierungsmethode ändern

Standardmäßig verbinden sich lokale PostgreSQL-Benutzer mit der PostgreSQL-Shell unter Verwendung der ‚peer‘-Methode. Die ‚peer‘ Authentifizierungsmethode funktioniert nur für lokale Verbindungen. In der Entwicklungsumgebung kannst du diese Art der Authentifizierung verwenden, aber für die Produktion solltest du die passwortbasierte Authentifizierungsmethode in Betracht ziehen.

In diesem Schritt lernst du, wie du die Standard-Peer-Authentifizierungsmethode in eine Passwort-Authentifizierung mit’scram-sha-256‚ ändern kannst.

1. Melde dich zunächst mit dem folgenden Befehl in der PostgreSQL-Shell an.

sudo -u postgres psql

Führe nun die folgende Abfrage aus, um den Ort der PostgreSQL Konfiguration‚pg_hba.conf‚ zu überprüfen.

SHOW hba_file;
SHOW password_encryption;

Du wirst die Ausgabe wie unten sehen.

PostgreSQL Konfiguration und Passwortverschlüsselung anzeigen

Du wirst feststellen, dass sich die PostgreSQL-Konfiguration „pg_hba.conf“ im Verzeichnis‚/var/lib/pgsql/13/data‚ befindet und die Standard-Passwortverschlüsselung für PostgreSQL auf RHEL basierten Betriebssystemen’scram-sha-256‚ ist.

Tippe nun ‚\q‘ ein, um die PostgreSQL-Shell zu verlassen und zu beenden.

2. Wechsle als nächstes in das Arbeitsverzeichnis‚/var/lib/pgsql/13/data‚ und editiere die Konfiguration‚pg_hba.conf‚ mit dem nano Editor.

cd /var/lib/pgsql/13/data/
nano pg_hba.conf

Unten in der Zeile ändere die lokale Authentifizierungsmethode auf’scram-sha-256‚ wie unten.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# „local“ is for Unix domain socket connections only
local   all             all                                     scram-sha-256
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

Drücke nun‚Strg+x‚, gib‚y‚ ein und drücke‚Enter‚, um zu speichern und zu beenden.

Mit dieser Konfiguration wirst du nach dem Passwort gefragt, um dich an der PostgreSQL Shell anzumelden.

3. Als nächstes wendest du die neue Konfiguration an, indem du den PostgreSQL-Dienst mit dem folgenden Befehl neu startest.

sudo systemctl restart postgresql-13

Jetzt musst du jedes Mal, wenn du auf die PostgreSQL-Shell zugreifen willst, das Passwort zur Authentifizierung eingeben.

4. Um die Konfiguration der Passwortauthentifizierung zu überprüfen, melde dich mit folgendem Befehl an der PostgreSQL-Shell an.

su - postgres
psql

Nun wirst du nach einem Passwort für den Standardbenutzer‚postgres‚ gefragt.

Gib das Passwort für den‚postgres‚ Datenbankbenutzer ein und drücke‚Enter‚. Wenn dein Passwort korrekt ist, wirst du die PostgreSQL-Shell wie folgt sehen. Andernfalls siehst du den Fehler‚FATAL‚, weil das Passwort falsch ist.

Überprüfe die PostgreSQL Authentifizierung

Zusätzlich kannst du den einzeiligen Befehl verwenden, um dich in der PostgreSQL-Shell anzumelden, wie unten gezeigt.

# Log in as default "postgres" user
sudo -u postgres psql

# Log in as another user
sudo -u postgres psql -U username

Überprüfe die PostgreSQL Authentifizierung mit dem psql Befehl

Neuen Benutzer und Datenbank für deine Anwendung erstellen

In diesem Schritt lernst du, wie du einen neuen Benutzer und eine neue Datenbank in PostgreSQL anlegst.

1. Logge dich in die PostgreSQL-Shell ein, indem du den unten stehenden Befehl ausführst.

sudo -u postgres psql

Gib nun das Passwort für den PostgreSQL Benutzer‚postgres‚ ein.

2. Führe die untenstehende PostgreSQL-Abfrage aus, um einen neuen Benutzer ‚johndoe‘ mit dem Passwort ‚johndoestrongpassword‘ zu erstellen und dem Benutzer die Rechte zum Erstellen einer neuen Datenbank und Rolle zu geben.

CREATE USER johndoe WITH 
CREATEDB
CREATEROLE
PASSWORD 'johndoestrongpassword';

Neuen Benutzer PostgreSQL erstellen

Danach verifizierst du den neuen Benutzer mit der folgenden Abfrage.

\du

Jetzt siehst du den neuen Benutzer ‚johndoe‘ mit der Liste der Rollen‚Create role‚ und‚Create DB‚ wie unten.

PostgreSQL Benutzer anzeigen

3. Als nächstes, um eine neue Benutzerdatenbank auf PostgreSQL zu erstellen, führe die folgende Abfrage aus.

CREATE DATABASE johndoe OWNER johndoe;

Überprüfe nun die neue Datenbank mit der folgenden Abfrage.

\l

Und du wirst die neue Datenbank ‚johndoe‘ mit dem Besitzer ‚johndoe‘ sehen, wie im Screenshot unten.

Neue Datenbank PostgreSQL erstellen und verfügbare Datenbanken anzeigen

Tabelle erstellen und Daten einfügen

Nachdem du eine neue Datenbank und einen neuen Benutzer erstellt hast, wirst du lernen, wie man eine Tabelle erstellt, Daten eingibt und Daten aus der Datenbank anzeigt.

1. Melde dich nun in der PostgreSQL Shell als Benutzer ‚johndoe‘ mit dem folgenden Befehl an.

su - postgres
psql -U johndoe

Oder du kannst den einzeiligen Befehl wie unten verwenden.

sudo -u postgres psql -U johndoe

Gib nun das Passwort für den PostgreSQL Benutzer‚johndoe‚ ein und drücke‚Enter‚ um dich anzumelden.

Verbinde dich mit der PostgreSQL Shell mit dem Benutzer johndoe

Wie du auf dem Screenshot sehen kannst, bist du nun in der PostgreSQL Shell an der Datenbank‚johndoe=>‚ angemeldet.

2. Führe nun die folgende Abfrage aus, um eine neue Tabelle ‚users‘ mit einigen Spalten ‚id, name, age, address, and salary‘ zu erstellen.

CREATE TABLE users (
   id INT PRIMARY KEY     NOT NULL,
   name           TEXT    NOT NULL,
   age            INT     NOT NULL,
   address        CHAR(50),
   salary         REAL
);

Um die verfügbaren Tabellen in der aktuellen Datenbank anzuzeigen, verwende die Abfrage‚\d‚ als‚describe‚ wie unten.

\d

Um die Spalten der Tabelle anzuzeigen, kannst du dieselbe Abfrage mit dem Tabellennamen wie unten verwenden.

\d users

Unten ist die ähnliche Ausgabe, die du erhalten wirst.

Erstelle Tabellenbenutzer und zeige verfügbare Spalten in der Tabelle an

3. Als nächstes fügst du der Tabelle neue Daten hinzu, indem du die Abfrage‚insert‚ verwendest (siehe unten).

INSERT INTO users (id,name,age,address,salary) VALUES (1, 'Paul', 32, 'California', 20000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (2, 'Jesse', 35, 'Mexico', 30000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (3, 'Linda', 27, 'Canada', 40000.00);

Daten in die Datenbank einfügen

4. Danach kannst du alle verfügbaren Daten mit der’select‚-Abfrage anzeigen lassen (siehe unten).

SELECT * FROM users;

Die Option ‚*‘ gibt alle Spalten in der Tabelle aus.

Um die Spalte zu spezifizieren, kannst du die’select‚ Abfrage wie unten beschrieben verwenden.

SELECT name,age,salary FROM users;

Du wirst eine ähnliche Ausgabe wie unten sehen.

Daten aus der PostgreSQL Datenbank anzeigen

Fazit

Herzlichen Glückwunsch! Jetzt hast du gelernt, wie man PostgreSQL auf Rocky Linux installiert. Außerdem hast du gelernt, wie man PostgreSQL auf eine sichere Art und Weise einsetzt (minimal), und die grundlegende Verwendung von PostgreSQL Abfragen zur Verwaltung von Benutzern, Datenbanken und Tabellen.

Das könnte dich auch interessieren …