Schritt-für-Schritt-Anleitung: Installation von PostgreSQL auf AlmaLinux 9
PostgreSQL ist ein freies, quelloffenes Datenbankmanagementsystem, das sich auf Erweiterbarkeit und SQL-Konformität konzentriert. PostgreSQL ist ein fortschrittliches RDBMS (Relational Database Management System) der Unternehmensklasse, das sowohl SQL (relationale) als auch JSON (nicht-relationale) Abfragen unterstützt.
PostgreSQL ist ein hochstabiles Datenbankmanagementsystem, das seit über 20 Jahren von der Open-Source-Community entwickelt wird und bei Entwicklern und Systemadministratoren für seine Zuverlässigkeit, Flexibilität, Robustheit und Leistung bekannt ist.
PostgreSQL wird als primäre Datenbank für Web-, mobile und analytische Anwendungen eingesetzt. Einige namhafte PostgreSQL-Nutzer auf der ganzen Welt sind Reddit, Skype, Instagram, Disqus, The Guardian, Yandex, Bloomberg, Nokia, BMW, etc.
In diesem Tutorium lernst du, wie du PostgreSQL unter AlmaLinux 9 installierst. Außerdem erfährst du, wie du die PostgreSQL-Authentifizierung einrichtest, die grundlegende Verwendung von PostgreSQL zum Anlegen von Datenbanken und Benutzern und einige grundlegende Abfragen zum Erstellen von Tabellen, Einfügen und Abrufen von Daten, Aktualisieren und Löschen.
Voraussetzungen
Um zu beginnen, musst du die folgenden Voraussetzungen erfüllen:
- Einen AlmaLinux 9 Server.
- Einen Nicht-Root-Benutzer mit sudo/root-Administrator-Rechten.
Hinzufügen des PostgreSQL-Repositorys
Das AlamLinux-Repository enthält standardmäßig PostgreSQL-Pakete. Um jedoch das meiste von PostgreSQL zu bekommen, kannst du PostgreSQL aus dem PostgreSQL Repository installieren. So stellst du sicher, dass du auch die neueste Version von PostgreSQL installieren kannst.
Im ersten Schritt fügst du das PostgreSQL-Repository zu deinem AlmaLinux 9 Server hinzu. Du kannst das PostgreSQL rpository auf der PostgreSQL Downloadseite auswählen.
Füge das PostgreSQL Repository für RHEL 9 mit dem folgenden Befehl hinzu. Dieses Repository kann für Linux-Distributionen verwendet werden, die von RHEL 9 abgeleitet sind, einschließlich CentOS 9 und AlmaLinux 9.
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Sobald das Repository hinzugefügt wurde, führe den folgenden Befehl aus, um die Liste der verfügbaren Repositories auf deinem System zu überprüfen. Wenn du erfolgreich bist, solltest du mehrere PostgreSQL-Pakete für verschiedene Versionen erhalten.
sudo dnf repolist
Führe nun den folgenden Befehl aus, um die AlmaLinux Repositories zu aktualisieren und die neueste Version der Paket-Cache-Informationen zu erhalten.
sudo dnf makecache -y
Installation von PostgreSQL
Nachdem du das PostgreSQL-Repository hinzugefügt hast, kannst du die PostgreSQL-Serverpakete installieren. Du kannst PostgreSQL 11, 12, 13, 14 und die neueste Version 15 über das offizielle PostgreSQL installieren.
Der zweite Schritt ist die Installation der neuesten Version von PostgreSQL 15 auf dem AlmaLinux 9 Server.
Führe den folgenden dnf-Befehl aus, um PostgreSQL 15 auf deinem AlmaLinux Server zu installieren. Gib y ein, wenn du dazu aufgefordert wirst, und drücke ENTER, um mit der Installation fortzufahren.
sudo dnf install postgresql15 postgresql15-server postgresql15-contrib
Nachdem du PostgreSQL installiert hast, führe den folgenden Befehl aus, um die PostgreSQL-Daten und -Konfigurationen zu initialisieren.
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
Führe nun den folgenden systemctl-Befehl aus, um den PostgreSQL 15-Dienst zu starten und zu aktivieren. Dadurch wird der PostgreSQL-Dienst am Standardport 5432 gestartet und der PostgreSQL-Dienst wird beim Systemstart automatisch ausgeführt.
sudo systemctl start postgresql-15 sudo systemctl enable postgresql-15
Führe abschließend den folgenden Befehl aus, um den PostgreSQL-Dienst zu überprüfen und sicherzustellen, dass der Dienst läuft.
sudo systemctl status postgresql-15
Wenn er läuft, solltest du eine Ausgabe wie„active (running)“ sehen.
Grundlegende PostgreSQL-Authentifizierung
Es ist wichtig, die PostgreSQL-Authentifizierung zu kennen, damit du sicherstellen kannst, dass sich deine PostgreSQL-Benutzer für die Anwendung anmelden und auf die Datenbank zugreifen können. Es gibt mehrere PostgreSQL-Authentifizierungsmethoden, darunter peer, trust, md5 und scram-sha-256. Du kannst die PostgreSQL-Authentifizierung über die Konfiguration „pg_hba.conf“ einrichten und anpassen, die sich im Verzeichnis „/var/lib/pgsql/VERSION/data/“ befindet.
Führe den Befehl cat aus, um die Standarddatei„pg_hba.conf“ anzuzeigen.
cat /var/lib/pgsql/15/data/pg_hba.conf
In der untersten Zeile solltest du die Standardkonfiguration wie folgt sehen:
Das bedeutet, dass für jede lokale Verbindung die Peer-Authentifizierungsmethode verwendet wird, d.h. die Verwendung eines Unix-Sockets. Wenn du dich mit dem folgenden Befehl mit PostgreSQL verbindest, wird die lokale Verbindung über die Peer-Authentifizierungsmethode und den Unix-Socket hergestellt.
sudo -u postgres psql
Wenn du jedoch den Host des PostgreSQL-Servers wie„-h localhost“ und den Benutzer„-U postgres“ angibst, stellst du die Verbindung über die scram-sha-256 Passwortauthentifizierung her, wie im folgenden Befehl.
sudo -u postgres psql -h localhost -U postgres
Da du das Passwort für den Standardbenutzer postgres nicht hast, bekommst du eine Fehlermeldung wie diese:
Passwort postgres-Benutzer ändern
In diesem Abschnitt wirst du das Passwort für den Standard-PostgreSQL-Benutzer„postgres“ einrichten und ändern.
Melde dich zunächst über die lokale Authentifizierung am PostgreSQL-Server an.
sudo -u postgres psql
Führe die folgende Abfrage aus, um das Passwort für den Standardbenutzer„postgres“ einzurichten, und beende sie dann mit„quit„. Achte außerdem darauf, dass du das folgende Passwort mit deinem Passwort änderst.
ALTER ROLE postgres WITH PASSWORD 'NewP4ssw0rd'; quit
Nachdem du das Passwort für den Benutzer„postgres“ geändert hast, führe den folgenden Befehl aus, um dein Passwort zu überprüfen. Wenn du dazu aufgefordert wirst, gib dein Passwort für den„postgres„-Benutzer ein.
sudo -u postgres psql -h localhost -U postgres
Wenn du eingeloggt bist, führe die folgende Abfrage aus, um die detaillierte Verbindung zu überprüfen. Du solltest sehen, dass du dich mit dem PostgreSQL-Server„localhost“ mit dem Benutzer„postgres“ mit der Zieldatenbank„postgres“ verbunden hast.
\conninfo
Benutzer und Datenbank auf PostgreSQL erstellen
In diesem Abschnitt erfährst du, wie du einen neuen Benutzer und eine neue Datenbank auf PostgreSQL anlegst, also lass uns loslegen.
Du musst sicherstellen, dass du dich über den Client „psql“ bei PostgreSQL angemeldet hast. Du kannst dich mit dem folgenden Befehl anmelden.
sudo -u postgres psql -h localhost -U postgres
Führe nun die folgende Abfrage aus, um einen neuen PostgreSQL mit dem Namen„appuser“ und dem Passwort„p4ssAppuser“ zu erstellen. Wenn die Abfrage erfolgreich war, solltest du eine Ausgabe wie„CREATE ROLE“ erhalten.
CREATE USER appuser LOGIN CREATEDB PASSWORD 'p4ssAppuser';
Führe die folgende Abfrage aus, um die Liste der Benutzer in PostgreSQL zu überprüfen. Wenn die Abfrage erfolgreich war, sollte der neue Benutzer„appuser“ in der Benutzerliste erscheinen.
\du
Gib„quit“ ein, um den PostgreSQL-Server zu verlassen.
quit
Als Nächstes führst du den folgenden Befehl aus, um dich mit dem neuen Benutzer„appuser“ mit dem PostgreSQL-Server und der Zieldatenbank„postgres“ zu verbinden. Wenn du dazu aufgefordert wirst, gib das Passwort für den Benutzer„appuser“ ein.
sudo -u postgres psql -h localhost -U appuser -d postgres
Sobald du eingeloggt bist, führe die folgende Abfrage aus, um die aktuelle Verbindung zu überprüfen. Du solltest sehen, dass du dich mit dem neuen Benutzer„appuser“ bei PostgreSQL und der Datenbank„postgres“ angemeldet hast.
\conninfo
Führe nun die folgende Abfrage aus, um eine neue Datenbank„appdb“ mit dem Standardbesitzer„appuser“ zu erstellen.
CREATE DATABASE appdb OWNER appuser;
Überprüfe dann die Liste der verfügbaren Datenbanken auf deinem PostgreSQL-Server. Wenn die Abfrage erfolgreich war, sollte die Datenbank„appdb“ mit dem Eigentümer„appuser“ auf PostgreSQL verfügbar sein.
\l
Du kannst nun mit der Abfrage„\connect“ von der Datenbank„postgres“ zur neuen Datenbank„appdb“ wechseln. Überprüfe dann deine aktuelle Verbindung.
\connect appdb; \conninfo
Jetzt solltest du zur neuen Datenbank„appdb“ gewechselt sein.
Gib „quit“ ein, um den PostgreSQL-Server zu verlassen, und überprüfe dann die Verbindung zur neuen Datenbank„appdb“ über den Benutzer„appuser“ mit dem folgenden Befehl.
sudo -u postgres psql -h localhost -U appuser -d appdb
Gib dein Passwort für „appuser“ ein, wenn du dazu aufgefordert wirst. Überprüfe nach dem Einloggen den Verbindungsstatus.
\conninfo
Du solltest sehen, dass du dich mit der neuen Datenbank„appdb“ über den Benutzer„appuser“ verbunden hast.
Jetzt hast du eine Datenbank und einen Benutzer auf PostgreSQL erstellt, die für deine Anwendung bereit sind. Außerdem lernst du im nächsten Abschnitt, wie du eine Tabelle erstellst und Daten in PostgreSQL einfügst und abrufst.
Tabelle erstellen
Nachdem du eine neue Datenbank erstellt hast, lernst du, wie du Tabellen in PostgreSQL erstellen kannst.
Führe in der Datenbank„appdb“ die folgende Abfrage aus, um eine neue Tabelle „Lehrer“ mit den Spalten„Name“, „Alter“, „Adresse“ und „Gehalt“ zu erstellen.
CREATE TABLE teachers ( id INT PRIMARY KEY NOT NULL, name TEXT NOT NULL, age INT NOT NULL, address CHAR(50), salary REAL );
Führe nun die folgende Abfrage aus, um alle verfügbaren Tabellen in der Datenbank„appdb“ anzuzeigen, und du solltest die Tabelle„teachers“ sehen, die du erstellt hast.
\dt
Überprüfe abschließend die verfügbaren Spalten der Tabelle „teachers“ mit der folgenden Abfrage. Du solltest Spalten wie id, Name, Alter, Adresse und Gehalt sehen.
\d+ teachers
Daten in die Tabelle einfügen
Nachdem du die Tabelle „Lehrer“ erstellt hast, lernst du nun, wie du Daten in PostgreSQL einfügen kannst.
Führe die folgenden Abfragen aus, um neue Daten in die Tabelle„teachers“ einzufügen. Wenn du erfolgreich bist, solltest du eine Ausgabe wie INSERT 0 1 erhalten.
INSERT INTO teachers (id,name,age,address,salary) VALUES (1, 'Lea', 25, 'California', 20000.00); INSERT INTO teachers (id,name,age,address,salary) VALUES (2, 'Lin', 35, 'Germany', 30000.00); INSERT INTO teachers (id,name,age,address,salary) VALUES (3, 'Lisa', 27, 'Canada', 40000.00);
Abrufen von Daten in PostgreSQL
Als Nächstes führst du die SELECT-Abfrage aus, um Daten aus der Tabelle„Lehrer“ abzurufen. Dadurch werden alle verfügbaren Daten aus den verfügbaren Spalten der Tabelle abgerufen.
SELECT * FROM teachers;
Du kannst SELECT auch verwenden, um Daten aus bestimmten Spalten abzurufen, wie hier. Im folgenden Beispiel rufst du Daten aus der Spalte „Name“ und „Gehalt“ ab.
SELECT name,salary FROM teachers;
Aktualisieren von Daten in PostgreSQL
Führe die folgende Abfrage aus, um die aktuellen Daten in der Tabelle„Lehrer“ zu aktualisieren. Dadurch wird die Spalte„Adresse“ aktualisiert, wobei die Spalte„Name„„Lisa“ lautet. Bei Erfolg solltest du eine Ausgabe wie UPDATE 1 erhalten.
UPDATE teachers SET address = 'France' WHERE name = 'Lisa';
Führe nun die folgende Abfrage aus, um die neu aktualisierten Daten zu überprüfen. Du solltest sehen, dass die Spalte„Adresse“ in„Frankreich“ für den Namen„Lisa“ geändert wurde.
SELECT * FROM teachers WHERE name = 'Lisa';
Datenbank und Benutzer löschen
Um deine Umgebung zu bereinigen, löschst du die Datenbank und den Benutzer, die du angelegt hast. Du löschst die Datenbank „appdb“ und den Benutzer „appuser“ von deinem PostgreSQL-Server.
Zuerst musst du mit der folgenden Abfrage zur Datenbank„postgres“ wechseln.
\connect postgres
Führe die folgende Abfrage aus, um die Datenbank„appdb“ zu löschen. Überprüfe dann die Liste der Datenbanken auf deinem PostgreSQL-Server und die Datenbank„appdb“ sollte entfernt sein.
DROP DATABASE appdb \l
Gib nun„quit“ ein, um deine aktuelle Sitzung als„appuser“ zu beenden. Dies ist notwendig, bevor du den Benutzer„appuser“ aus PostgreSQL löschst.
quit
Als Nächstes loggst du dich mit dem folgenden Befehl als PostgreSQL-Standardbenutzer„postgres“ ein.
sudo -u postgres psql
Sobald du eingeloggt bist, löschst du den Benutzer„appuser“ mit der folgenden Abfrage. Wenn du erfolgreich warst, solltest du eine Ausgabe wie DROP ROLE erhalten.
DROP user appuser;
Überprüfe nun die Liste der verfügbaren Benutzer in PostgreSQL mit der folgenden Abfrage. Der Benutzer„appuser“ sollte von PostgreSQL gelöscht werden.
Damit hast du deine PostgreSQL-Serverinstallation aufgeräumt.
Fazit
Herzlichen Glückwunsch! Mit dieser Anleitung hast du nun PostgreSQL auf AlmaLinux 9 installiert. Du hast die neueste Version von PostgreSQL 15 aus dem offiziellen PostgreSQL-Repository auf AlmaLinux 9 installiert. Außerdem hast du die grundlegende Authentifizierungsmethode von PostgreSQL kennengelernt, wie du dich über die Befehlszeile des PostgreSQL-Clients psql mit PostgreSQL verbindest und wie du ein Passwort für den Standard-PostgreSQL-Benutzer„postgres“ einrichtest. Zu guter Letzt hast du auch einige grundlegende PostgreSQL-Abfragen zum Erstellen von Datenbanken, Benutzern und Tabellen, zum Einfügen und Abrufen von Daten sowie zum Aktualisieren und Löschen von Daten gelernt.