In diesem Lab werden wir PostgreSQL auf der LabEx VM installieren und die erste Einrichtung durchführen. Ziel ist es, PostgreSQL in Betrieb zu nehmen und seine grundlegende Funktionalität zu überprüfen.
Wir beginnen damit, die Paketlisten zu aktualisieren und den PostgreSQL-Server zusammen mit dem postgresql-contrib-Paket zu installieren. Nach der Installation werden wir überprüfen, ob der PostgreSQL-Dienst läuft und Verbindungen akzeptiert, indem wir den Befehl pg_isready verwenden. Abschließend werden wir die Standarddatenbanken erkunden und den Serverstatus sowie die grundlegende Konfiguration prüfen.
Skills Graph
%%%%{init: {'theme':'neutral'}}%%%%
flowchart RL
postgresql(("PostgreSQL")) -.-> postgresql/PostgreSQLGroup(["PostgreSQL"])
postgresql/PostgreSQLGroup -.-> postgresql/db_setup("Create New Database")
postgresql/PostgreSQLGroup -.-> postgresql/db_access("Connect To Database")
postgresql/PostgreSQLGroup -.-> postgresql/db_status("Check Database Status")
postgresql/PostgreSQLGroup -.-> postgresql/sys_version("Get Server Version")
subgraph Lab Skills
postgresql/db_setup -.-> lab-550900{{"Installation und Erstkonfiguration von PostgreSQL"}}
postgresql/db_access -.-> lab-550900{{"Installation und Erstkonfiguration von PostgreSQL"}}
postgresql/db_status -.-> lab-550900{{"Installation und Erstkonfiguration von PostgreSQL"}}
postgresql/sys_version -.-> lab-550900{{"Installation und Erstkonfiguration von PostgreSQL"}}
end
Installieren von PostgreSQL und Überprüfung der Installation
In diesem Schritt werden wir PostgreSQL auf der LabEx VM installieren und überprüfen, ob die Installation erfolgreich war. PostgreSQL ist ein leistungsstarkes, quelloffenes relationales Datenbankverwaltungssystem (RDBMS).
Zunächst aktualisieren wir die Paketlisten für Upgrades und neue Installationen. Öffnen Sie ein Terminal in der LabEx VM. Sie finden das Terminal-Symbol auf dem Desktop.
Führen Sie den folgenden Befehl aus:
sudo apt update
Dieser Befehl aktualisiert die Liste der verfügbaren Pakete und ihrer Versionen, installiert oder aktualisiert jedoch keine Pakete. Sie sollten eine Ausgabe sehen, die anzeigt, dass die Paketlisten aktualisiert werden.
Als Nächstes installieren wir den PostgreSQL-Server und das postgresql-contrib-Paket. Das postgresql-contrib-Paket bietet zusätzliche Hilfsprogramme und Funktionen, die oft nützlich sind.
Führen Sie den folgenden Befehl aus:
sudo apt install postgresql postgresql-contrib -y
Das -y-Flag beantwortet automatisch alle Abfragen während des Installationsprozesses mit "ja". Dieser Befehl lädt PostgreSQL und seine zugehörigen Pakete herunter und installiert sie. Sie werden eine Vielzahl von Ausgaben sehen, während die Pakete heruntergeladen und installiert werden.
Nach Abschluss der Installation müssen wir überprüfen, ob PostgreSQL läuft. PostgreSQL sollte nach der Installation automatisch starten.
Um den Status des PostgreSQL-Dienstes zu überprüfen, führen Sie den folgenden Befehl aus:
sudo service postgresql status
Wir können auch den Befehl pg_isready verwenden, um zu überprüfen, ob der PostgreSQL-Server läuft und Verbindungen akzeptiert.
Führen Sie den folgenden Befehl aus:
pg_isready
Wenn PostgreSQL läuft, sollten Sie die folgende Ausgabe sehen:
/var/run/postgresql:5432 - accepting connections
Wenn PostgreSQL nicht läuft, sehen Sie möglicherweise eine Fehlermeldung wie:
/var/run/postgresql:5432 - no response
Wenn Sie den Fehler "no response" erhalten, versuchen Sie, den PostgreSQL-Dienst neu zu starten. Sie können den folgenden Befehl ausführen:
sudo service postgresql restart
Führen Sie dann erneut pg_isready aus, um den Status zu überprüfen.
Wenn pg_isready "accepting connections" anzeigt, ist damit bestätigt, dass PostgreSQL erfolgreich installiert und läuft.
Zugriff auf die PostgreSQL-Shell (psql)
In diesem Schritt werden wir auf die PostgreSQL-Shell psql zugreifen, ein Befehlszeilentool zur Interaktion mit PostgreSQL-Datenbanken. Mit psql können Sie SQL-Abfragen ausführen, Datenbanken verwalten und andere administrative Aufgaben durchführen.
Standardmäßig erstellt PostgreSQL einen Unix-Benutzer namens postgres, der dem PostgreSQL-Superuser entspricht. Um auf die psql-Shell zuzugreifen, können Sie entweder auf den postgres-Benutzer wechseln oder sudo verwenden, um Befehle als postgres-Benutzer auszuführen.
Zunächst wechseln wir auf den postgres-Benutzer. Führen Sie den folgenden Befehl aus:
sudo -i -u postgres
Dieser Befehl wechselt den aktuellen Benutzer auf postgres. Sie werden bemerken, dass die Eingabeaufforderung sich ändert, um den neuen Benutzer widerzuspiegeln.
Nachdem Sie sich als postgres-Benutzer angemeldet haben, können Sie auf die psql-Shell zugreifen. Führen Sie den folgenden Befehl aus:
psql
Dieser Befehl öffnet die psql-Shell. Sie sollten eine Eingabeaufforderung wie die folgende sehen:
postgres=#
Dies zeigt an, dass Sie mit dem PostgreSQL-Server verbunden sind und nun SQL-Befehle ausführen können.
Um die psql-Shell zu verlassen, geben Sie \q ein und drücken Sie die Eingabetaste:
postgres=## \q
Dadurch gelangen Sie zurück in die Shell des postgres-Benutzers.
Um die Shell des postgres-Benutzers zu verlassen und zurück zu Ihrem ursprünglichen Benutzer (labex) zu gelangen, geben Sie exit ein und drücken Sie die Eingabetaste:
exit
Alternativ können Sie direkt als labex-Benutzer über sudo auf die psql-Shell zugreifen. Dies erspart den Wechsel des Benutzers.
Führen Sie den folgenden Befehl aus:
sudo -u postgres psql
Dieser Befehl führt den psql-Befehl als postgres-Benutzer aus. Sie werden direkt mit der psql-Shell verbunden.
Um die psql-Shell erneut zu verlassen, geben Sie \q ein und drücken Sie die Eingabetaste:
postgres=## \q
Dadurch gelangen Sie zurück in die Shell des labex-Benutzers.
Zusammenfassend haben Sie zwei Methoden gelernt, um auf die psql-Shell zuzugreifen: das Wechseln auf den postgres-Benutzer und die Verwendung von sudo. Beide Methoden erzielen dasselbe Ergebnis, aber die Verwendung von sudo kann in einigen Fällen bequemer sein.
Erkunden der Standarddatenbanken
In diesem Schritt werden wir die Standarddatenbanken erkunden, die beim Installieren von PostgreSQL erstellt werden. Diese Datenbanken bieten essentielle Funktionen und Informationen über den PostgreSQL-Server.
Zunächst greifen Sie als postgres-Benutzer auf die psql-Shell zu. Sie können den folgenden Befehl verwenden:
sudo -u postgres psql
Sobald Sie in der psql-Shell sind, können Sie die verfügbaren Datenbanken mit dem Befehl \l auflisten. Führen Sie den folgenden Befehl aus:
postgres=## \l
Dieser Befehl zeigt eine Liste der Datenbanken zusammen mit Informationen über ihre Besitzer, Codierungen und Zugriffsrechte an. Sie sollten mindestens drei Datenbanken sehen:
postgres: Dies ist die Standarddatenbank, mit der Sie verbunden sind, wenn Sie erstmals auf die psql-Shell zugreifen. Sie wird oft für administrative Aufgaben verwendet.
template0: Diese Datenbank wird als Vorlage für das Erstellen neuer Datenbanken verwendet. Sie sollten diese Datenbank nicht ändern.
template1: Dies ist eine weitere Vorlagendatenbank, die für das Erstellen neuer Datenbanken verwendet wird. Sie ist eine Standardvorlage und kann angepasst werden.
Um sich mit einer bestimmten Datenbank zu verbinden, können Sie den Befehl \c gefolgt vom Datenbanknamen verwenden. Beispielsweise können Sie den folgenden Befehl ausführen, um sich mit der postgres-Datenbank zu verbinden:
postgres=## \c postgres
Sie sollten eine Meldung sehen, die anzeigt, dass Sie jetzt mit der postgres-Datenbank verbunden sind:
You are now connected to database "postgres" as user "postgres".
Nachdem Sie jetzt mit der postgres-Datenbank verbunden sind, können Sie ihren Inhalt erkunden. Beispielsweise können Sie die Tabellen in der Datenbank mit dem Befehl \dt auflisten:
postgres=## \dt
Dieser Befehl zeigt eine Liste der Tabellen in der aktuellen Datenbank an. Da die postgres-Datenbank hauptsächlich für administrative Aufgaben verwendet wird, enthält sie möglicherweise keine benutzerdefinierten Tabellen.
Sie können auch Informationen über die aktuelle Datenbankverbindung mit dem Befehl \conninfo anzeigen:
postgres=## \conninfo
Dieser Befehl zeigt Informationen wie den Datenbanknamen, den Benutzer, den Host und den Port an.
Um sich von der aktuellen Datenbank zu trennen und zur Standardverbindung zurückzukehren, können Sie den Befehl \c ohne Angabe eines Datenbanknamens verwenden:
postgres=## \c
Dadurch verbinden Sie sich wieder mit der Standarddatenbank, die normalerweise die postgres-Datenbank ist.
Schließlich verlassen Sie die psql-Shell, indem Sie \q eingeben und die Eingabetaste drücken:
postgres=## \q
Dadurch gelangen Sie zurück in die Shell des labex-Benutzers.
In diesem Schritt haben Sie gelernt, wie Sie die verfügbaren Datenbanken auflisten, sich mit einer bestimmten Datenbank verbinden und ihren Inhalt mit der psql-Shell erkunden können.
Überprüfen des Serverstatus und der grundlegenden Konfiguration
In diesem Schritt werden wir den Status des PostgreSQL-Servers überprüfen und einige grundlegende Konfigurationseinstellungen erkunden.
Wie bereits erwähnt, da die LabEx-VM in einem Docker-Container läuft, funktionieren systemctl-Befehle möglicherweise nicht wie erwartet. Wir werden hauptsächlich pg_isready und psql verwenden, um den Serverstatus zu überprüfen.
Zunächst überprüfen wir erneut, ob der PostgreSQL-Server läuft. Führen Sie den folgenden Befehl aus:
pg_isready
Wenn PostgreSQL läuft, sollten Sie die folgende Ausgabe sehen:
/var/run/postgresql:5432 - accepting connections
Als nächstes überprüfen wir einige grundlegende Konfigurationseinstellungen mithilfe der psql-Shell. Greifen Sie als postgres-Benutzer auf die psql-Shell zu:
sudo -u postgres psql
Sobald Sie in der psql-Shell sind, können Sie die PostgreSQL-Version mithilfe der folgenden SQL-Abfrage überprüfen:
SELECT version();
Führen Sie diese Abfrage in der psql-Shell aus. Sie sollten eine Ausgabe ähnlich der folgenden sehen:
version
----------------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 14.17 (Ubuntu 14.17-0ubuntu0.22.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit
(1 row)
Dies zeigt die auf dem Server installierte PostgreSQL-Version an.
Sie können auch den aktuellen Datenbankbenutzer überprüfen:
SELECT user;
Die Ausgabe wird wie folgt lauten:
user
----------
postgres
(1 row)
Um den Namen der Datenbank zu überprüfen, mit der Sie derzeit verbunden sind, verwenden Sie:
Um die Konfigurationseinstellungen anzuzeigen, können Sie den SHOW-Befehl verwenden. Beispielsweise können Sie den folgenden Befehl ausführen, um die Einstellung listen_addresses zu überprüfen, die die IP-Adressen angibt, auf denen der Server auf Verbindungen lauscht:
SHOW listen_addresses;
Die Ausgabe wird wahrscheinlich wie folgt lauten:
listen_addresses
--------------------
*
(1 row)
Das * gibt an, dass der Server auf allen verfügbaren IP-Adressen lauscht.
Eine weitere nützliche Einstellung, die Sie überprüfen können, ist port, die die Portnummer angibt, auf der der Server auf Verbindungen lauscht:
SHOW port;
Die Ausgabe wird wie folgt lauten:
port
------
5432
(1 row)
Dies zeigt an, dass der Server auf Port 5432 lauscht, was der Standardport für PostgreSQL ist.
Schließlich verlassen Sie die psql-Shell, indem Sie \q eingeben und die Eingabetaste drücken:
postgres=## \q
Dadurch gelangen Sie zurück in die Shell des labex-Benutzers.
In diesem Schritt haben Sie gelernt, wie Sie den Status des PostgreSQL-Servers überprüfen und einige grundlegende Konfigurationseinstellungen mithilfe von pg_isready und der psql-Shell erkunden können.
Zusammenfassung
In diesem Lab haben wir das relationale Datenbanksystem (RDBMS) PostgreSQL auf der LabEx-VM mithilfe von apt update und apt install postgresql postgresql-contrib -y installiert. Das -y-Flag wurde verwendet, um während der Installation automatisch alle Bestätigungsaufforderungen zu akzeptieren.
Nach der Installation haben wir überprüft, ob der PostgreSQL-Service läuft und Verbindungen akzeptiert. Da die LabEx-VM in einem Docker-Container läuft, haben wir den Befehl pg_isready anstelle von systemctl status postgresql verwendet, um den Serverstatus zu überprüfen. Die erwartete Ausgabe von pg_isready, wenn der Server läuft, lautet /var/run/postgresql:5432 - accepting connections.