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.
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.
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.
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
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.
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.
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.
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.
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
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';
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.
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.
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.
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.
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);
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.
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.