So installieren und konfigurieren Sie pgAdmin 4 im Servermodus

Einführung

pgAdmin ist eine Open-Source-Verwaltungs- und Entwicklungsplattform für PostgreSQL und die zugehörigen Datenbankverwaltungssysteme. Es wurde in Python und jQuery geschrieben und unterstützt alle Funktionen von PostgreSQL. Mit pgAdmin können Sie grundlegende SQL-Abfragen erstellen, Ihre Datenbanken überwachen und erweiterte Datenbankarchitekturen konfigurieren.

In diesem Tutorial werden wir die Installation und Konfiguration der neuesten Version von pgAdmin auf einem Ubuntu 18.04-Server durchführen, über einen Webbrowser auf pgAdmin zugreifen und eine Verbindung zu einer PostgreSQL-Datenbank auf Ihrem Server herstellen.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie:

Schritt 1 - pgAdmin und seine Abhängigkeiten installieren

Zum jetzigen Zeitpunkt ist die neueste Version von pgAdmin pgAdmin 4, während die neueste Version, die über die offiziellen Ubuntu-Repositorys verfügbar ist, pgAdmin 3 ist. pgAdmin 3 wird jedoch nicht mehr unterstützt, und die Projektbetreuer empfehlen, pgAdmin 4 zu installieren. In diesem Schritt werden wir die Installation der neuesten Version von pgAdmin 4 in einer virtuellen Umgebung (wie vom Entwicklungsteam des Projekts empfohlen) und die Installation der Abhängigkeiten mit "+ apt +" durchführen.

Aktualisieren Sie zunächst den Paketindex Ihres Servers, falls Sie dies noch nicht getan haben:

sudo apt update

Installieren Sie als Nächstes die folgenden Abhängigkeiten. Dazu gehören + libgmp3-dev +, eine Multipräzisions-Arithmetikbibliothek; + libpq-dev +, das Header-Dateien und eine statische Bibliothek enthält, die die Kommunikation mit einem PostgreSQL-Backend erleichtert; und + libapache2-mod-wsgi-py3 +, ein Apache-Modul, mit dem Sie Python-basierte Webanwendungen in Apache hosten können:

sudo apt install libgmp3-dev libpq-dev libapache2-mod-wsgi-py3

Erstellen Sie anschließend einige Verzeichnisse, in denen pgAdmin die Sitzungsdaten, Speicherdaten und Protokolle speichert:

sudo mkdir -p /var/lib/pgadmin4/sessions
sudo mkdir /var/lib/pgadmin4/storage
sudo mkdir /var/log/pgadmin4

Ändern Sie dann den Besitz dieser Verzeichnisse in Ihren Nicht-Root-Benutzer und Ihre Gruppe. Dies ist erforderlich, da sie derzeit Ihrem * root * -Benutzer gehören. Wir installieren pgAdmin jedoch aus einer virtuellen Umgebung, die Ihrem Nicht-Root-Benutzer gehört, und bei der Installation werden einige Dateien in diesen Verzeichnissen erstellt. Nach der Installation werden wir jedoch den Besitzer auf den * www-data * -Benutzer und die Gruppe umstellen, damit er im Web bereitgestellt werden kann:

sudo chown -R : /var/lib/pgadmin4
sudo chown -R : /var/log/pgadmin4

Öffnen Sie als Nächstes Ihre virtuelle Umgebung. Navigieren Sie zu dem Verzeichnis, in dem sich Ihre Programmierumgebung befindet, und aktivieren Sie es. Befolgen Sie die Namenskonventionen von https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-programming-environment-on-an-ubuntu-18- 04-server [vorausgesetzt, Python 3-Tutorial], gehen wir in das Verzeichnis + surroundings + und aktivieren die Umgebung + my_env +:

cd environments/
source /bin/activate

Laden Sie anschließend den pgAdmin 4-Quellcode auf Ihren Computer herunter. Um die neueste Version des Quellcodes zu finden, navigieren Sie zu pgAdmin 4 (Python Wheel) Download page und klicken Sie auf den Link für die neueste Version Version (v3.4, Stand dieses Schreibens). Hiermit gelangen Sie zu einer * Downloads * -Seite auf der PostgreSQL-Website. Kopieren Sie dort den Dateilink, der mit "+ .whl " endet - dem Standardformat für integrierte Pakete, das für Python-Distributionen verwendet wird. Kehren Sie dann zu Ihrem Terminal zurück und führen Sie den folgenden Befehl ` wget ` aus. Stellen Sie dabei sicher, dass Sie den Link durch den Link ersetzen, den Sie von der PostgreSQL-Site kopiert haben, wodurch die ` .whl +` - Datei auf Ihren Server heruntergeladen wird:

wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v/pip/pgadmin4--py2.py3-none-any.whl

Als nächstes installieren Sie das "+ wheel " - Paket, die Referenzimplementierung des Radverpackungsstandards. Als Python-Bibliothek dient dieses Paket als Erweiterung zum Erstellen von Rädern und enthält ein Befehlszeilentool für die Arbeit mit ` .whl +` -Dateien:

python -m pip install wheel

Installieren Sie dann das Paket pgAdmin 4 mit dem folgenden Befehl:

python -m pip install pgadmin4--py2.py3-none-any.whl

Das kümmert sich um die Installation von pgAdmin und seinen Abhängigkeiten. Vor dem Herstellen einer Verbindung zu Ihrer Datenbank müssen Sie jedoch einige Änderungen an der Programmkonfiguration vornehmen.

Schritt 2 - Konfiguration von pgAdmin 4

Obwohl pgAdmin auf Ihrem Server installiert wurde, müssen Sie noch einige Schritte ausführen, um sicherzustellen, dass es über die erforderlichen Berechtigungen und Konfigurationen verfügt, damit es die Weboberfläche ordnungsgemäß bedienen kann.

Die Hauptkonfigurationsdatei von pgAdmin, + config.py +, wird vor jeder anderen Konfigurationsdatei gelesen. Der Inhalt kann als Referenz für weitere Konfigurationseinstellungen verwendet werden, die in den anderen Konfigurationsdateien von pgAdmin angegeben werden können. Um jedoch unvorhergesehene Fehler zu vermeiden, sollten Sie die Datei "+ config.py " nicht selbst bearbeiten. Wir werden einige Konfigurationsänderungen in eine neue Datei mit dem Namen " config_local.py +" einfügen, die nach der primären Datei gelesen wird.

Erstellen Sie diese Datei jetzt mit Ihrem bevorzugten Texteditor. Hier werden wir + nano + verwenden:

nano /lib/python3.6/site-packages/pgadmin4/config_local.py

Fügen Sie in Ihrem Editor den folgenden Inhalt hinzu:

environ / my_env / lib / python3.6 / site-packages / pgadmin4 / config_local.py

LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/storage'
SERVER_MODE = True

Dies sind die folgenden fünf Richtlinien:

  • + LOG_FILE +: Definiert die Datei, in der die Protokolle von pgAdmin gespeichert werden.

  • + SQLITE_PATH +: pgAdmin speichert benutzerbezogene Daten in einer SQLite-Datenbank, und diese Anweisung verweist die pgAdmin-Software auf diese Konfigurationsdatenbank. Da sich diese Datei im persistenten Verzeichnis "+ / var / lib / pgadmin4 / +" befindet, gehen Ihre Benutzerdaten nach dem Upgrade nicht verloren.

  • + SESSION_DB_PATH +: Gibt an, in welchem ​​Verzeichnis die Sitzungsdaten gespeichert werden.

  • + STORAGE_DIR +: Definiert, wo pgAdmin andere Daten wie Backups und Sicherheitszertifikate speichert.

  • + SERVER_MODE +: Wenn Sie diese Anweisung auf + True + setzen, wird pgAdmin im Gegensatz zum Desktop-Modus im Server-Modus ausgeführt.

Beachten Sie, dass jeder dieser Dateipfade auf die Verzeichnisse verweist, die Sie in Schritt 1 erstellt haben.

Speichern und schließen Sie die Datei nach dem Hinzufügen dieser Zeilen (drücken Sie "+ STRG + X ", gefolgt von " Y " und " ENTER +"). Führen Sie bei diesen Konfigurationen das Setup-Skript pgAdmin aus, um Ihre Anmeldeinformationen festzulegen:

python my_env/lib/python3.6/site-packages/pgadmin4/setup.py

Nachdem Sie diesen Befehl ausgeführt haben, werden Sie aufgefordert, Ihre E-Mail-Adresse und ein Kennwort einzugeben. Diese dienen als Anmeldeinformationen, wenn Sie später auf pgAdmin zugreifen. Denken Sie also daran, sich Ihre Eingaben zu merken oder zu notieren:

Output. . .
Enter the email address and password to use for the initial pgAdmin user account:

Email address:
Password:
Retype password:

Deaktivieren Sie anschließend Ihre virtuelle Umgebung:

deactivate

Rufen Sie die Dateipfade auf, die Sie in der Datei + config_local.py + angegeben haben. Diese Dateien befinden sich in den Verzeichnissen, die Sie in Schritt 1 erstellt haben und die derzeit Ihrem Nicht-Root-Benutzer gehören. Sie müssen jedoch für den Benutzer und die Gruppe, die Ihren Webserver ausführen, zugänglich sein. Standardmäßig sind dies unter Ubuntu 18.04 die Benutzer und Gruppen * www-data *. Aktualisieren Sie daher die Berechtigungen für die folgenden Verzeichnisse, um * www-data * die Eigentumsrechte für beide zu erteilen:

sudo chown -R www-data:www-data /var/lib/pgadmin4/
sudo chown -R www-data:www-data /var/log/pgadmin4/

Damit ist pgAdmin vollständig konfiguriert. Das Programm wird jedoch noch nicht von Ihrem Server aus bedient und ist daher weiterhin nicht verfügbar. Um dies zu beheben, konfigurieren wir Apache so, dass pgAdmin bereitgestellt wird, sodass Sie über einen Webbrowser auf die Benutzeroberfläche zugreifen können.

Schritt 3 - Apache konfigurieren

Der Apache-Webserver verwendet virtuelle Hosts, um Konfigurationsdetails zu kapseln und mehr als eine Domäne von einem einzelnen Server aus zu hosten. Wenn Sie das vorausgesetzte Apache-Lernprogramm befolgt haben, haben Sie möglicherweise eine Beispieldatei für einen virtuellen Host mit dem Namen "+ your_domain.conf +" erstellt. In diesem Schritt erstellen wir jedoch eine neue Datei, über die wir das pgAdmin-Webinterface bedienen können.

Stellen Sie zunächst sicher, dass Sie sich in Ihrem Stammverzeichnis befinden:

cd /

Dann erstellen Sie eine neue Datei in Ihrem + / sites-available / + Verzeichnis mit dem Namen + pgadmin4.conf +. Dies ist die virtuelle Hostdatei Ihres Servers:

sudo nano /etc/apache2/sites-available/pgadmin4.conf

Fügen Sie dieser Datei den folgenden Inhalt hinzu, und aktualisieren Sie die hervorgehobenen Teile entsprechend Ihrer eigenen Konfiguration:

/etc/apache2/sites-available/pgadmin4.conf

<VirtualHost *>
   ServerName

   WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/home///
   WSGIScriptAlias / /home////lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi

   <Directory "/home////lib/python3.6/site-packages/pgadmin4/">
       WSGIProcessGroup pgadmin
       WSGIApplicationGroup %{GLOBAL}
       Require all granted
   </Directory>
</VirtualHost>

Speichern und schließen Sie die virtuelle Hostdatei. Verwenden Sie als Nächstes das Skript "+ a2dissite ", um die standardmäßige virtuelle Hostdatei " 000-default.conf +" zu deaktivieren:

sudo a2dissite 000-default.conf

Verwenden Sie dann das Skript "+ a2ensite ", um Ihre virtuelle Hostdatei " pgadmin4.conf " zu aktivieren. Dadurch wird eine symbolische Verknüpfung von der virtuellen Hostdatei im Verzeichnis " / sites-available / " zum Verzeichnis " / sites-enabled / +" erstellt:

sudo a2ensite pgadmin4.conf

Prüfen Sie anschließend, ob die Syntax Ihrer Konfigurationsdatei korrekt ist:

apachectl configtest

Wenn Ihre Konfigurationsdatei in Ordnung ist, wird "+ Syntax OK " angezeigt. Wenn in der Ausgabe ein Fehler auftritt, öffnen Sie die Datei " pgadmin4.conf " erneut und überprüfen Sie, ob Ihre IP-Adresse und die Dateipfade korrekt sind. Führen Sie dann den Befehl " configtest +" erneut aus.

Sobald Sie in Ihrer Ausgabe "+ Syntax OK +" sehen, starten Sie den Apache-Dienst neu, damit er Ihre neue virtuelle Host-Datei liest:

sudo systemctl restart apache2

pgAdmin ist jetzt vollständig installiert und konfiguriert. Als Nächstes wird erläutert, wie Sie über einen Browser auf pgAdmin zugreifen, bevor Sie es mit Ihrer PostgreSQL-Datenbank verbinden.

Schritt 4 - Zugriff auf pgAdmin

Öffnen Sie auf Ihrem lokalen Computer Ihren bevorzugten Webbrowser und navigieren Sie zur IP-Adresse Ihres Servers:

http://

Dort wird ein Anmeldebildschirm angezeigt, der etwa wie folgt aussieht:

Geben Sie die Anmeldeinformationen ein, die Sie in Schritt 2 definiert haben, und Sie gelangen zum Begrüßungsbildschirm von pgAdmin:

Nachdem Sie bestätigt haben, dass Sie auf die pgAdmin-Oberfläche zugreifen können, müssen Sie nur noch pgAdmin mit Ihrer PostgreSQL-Datenbank verbinden. Zuvor müssen Sie jedoch eine geringfügige Änderung an der Konfiguration Ihres PostgreSQL-Superusers vornehmen.

Schritt 5 - Konfigurieren Ihres PostgreSQL-Benutzers

Wenn Sie dem vorausgesetztes PostgreSQL-Tutorial gefolgt sind, sollte PostgreSQL bereits auf Ihrem Computer installiert sein Ihr Server mit einer neuen Superuser-Rolle und Datenbank eingerichtet.

Standardmäßig authentifizieren Sie sich in PostgreSQL als Datenbankbenutzer mit der Authentifizierungsmethode „Identification Protocol“ oder „ident“. Dazu verwendet PostgreSQL den Ubuntu-Benutzernamen des Clients und verwendet ihn als zulässigen Datenbankbenutzernamen. Dies kann in vielen Fällen zu mehr Sicherheit führen, kann jedoch auch zu Problemen führen, wenn Sie möchten, dass ein externes Programm wie pgAdmin eine Verbindung zu einer Ihrer Datenbanken herstellt. Um dies zu beheben, legen wir ein Kennwort für diese PostgreSQL-Rolle fest, mit dem pgAdmin eine Verbindung zu Ihrer Datenbank herstellen kann.

Öffnen Sie auf Ihrem Terminal die PostgreSQL-Eingabeaufforderung unter Ihrer Superuser-Rolle:

sudo -u  psql

Aktualisieren Sie an der PostgreSQL-Eingabeaufforderung das Benutzerprofil, um ein sicheres Kennwort Ihrer Wahl zu erhalten:

ALTER USER  PASSWORD '';

Beenden Sie dann die PostgreSQL-Eingabeaufforderung:

\q

Kehren Sie dann in Ihrem Browser zur Oberfläche von pgAdmin 4 zurück und suchen Sie das Menü * Browser * auf der linken Seite. Klicken Sie mit der rechten Maustaste auf * Server *, um ein Kontextmenü zu öffnen, fahren Sie mit der Maus über * Erstellen * und klicken Sie auf * Server… *.

image: https: //assets.digitalocean.com/articles/pgadmin/create_server_box_resized.png [Server-Kontextmenü erstellen]

Daraufhin wird in Ihrem Browser ein Fenster geöffnet, in dem Sie Informationen zu Ihrem Server, Ihrer Rolle und Ihrer Datenbank eingeben können.

Geben Sie auf der Registerkarte * Allgemein * den Namen für diesen Server ein. Dies kann alles sein, was Sie möchten, aber es kann hilfreich sein, es beschreibend zu gestalten. In unserem Beispiel heißt der Server "+ Sammy-server-1 +".

image: https://assets.digitalocean.com/articles/pgadmin/server_general_tab_resized.png [Server erstellen - Registerkarte Allgemein]

Klicken Sie anschließend auf die Registerkarte * Verbindung *. Geben Sie im Feld * Hostname / -adresse * "+ localhost " ein. Der * Port * sollte standardmäßig auf " 5432 +" eingestellt sein, was für dieses Setup funktioniert, da dies der von PostgreSQL verwendete Standardport ist.

Geben Sie im Feld * Wartungsdatenbank * den Namen der Datenbank ein, mit der Sie eine Verbindung herstellen möchten. Beachten Sie, dass diese Datenbank bereits auf Ihrem Server erstellt sein muss. Geben Sie dann den PostgreSQL-Benutzernamen und das zuvor konfigurierte Passwort in die Felder * Benutzername * bzw. * Passwort * ein.

image: https://assets.digitalocean.com/articles/pgadmin/connection_tab_resized.png [Server erstellen - Registerkarte Verbindung]

Die leeren Felder in den anderen Registerkarten sind optional und müssen nur ausgefüllt werden, wenn Sie ein bestimmtes Setup haben, in dem sie erforderlich sind. Klicken Sie auf die Schaltfläche * Speichern *, und die Datenbank wird im Menü * Browser * unter * Server * angezeigt.

Sie haben pgAdmin4 erfolgreich mit Ihrer PostgreSQL-Datenbank verbunden. Über das pgAdmin-Dashboard können Sie fast alles tun, was Sie über die PostgreSQL-Eingabeaufforderung tun würden. Zur Veranschaulichung erstellen wir eine Beispieltabelle und füllen sie über die Webschnittstelle mit einigen Beispieldaten.

Schritt 6 - Erstellen einer Tabelle im pgAdmin-Dashboard

Suchen Sie im pgAdmin-Dashboard das Menü * Browser * auf der linken Seite des Fensters. Klicken Sie auf das Pluszeichen (* + ) neben * Server (1) *, um das Baummenü darin zu erweitern. Klicken Sie dann auf das Pluszeichen links neben dem Server, den Sie im vorherigen Schritt hinzugefügt haben ( Sammy-Server-1 * in unserem Beispiel), und erweitern Sie den Namen der hinzugefügten Datenbank (* sammy *) in * Datenbanken * unser Beispiel) und dann * Schemas (1) *. Sie sollten ein Baummenü wie das folgende sehen:

image: https: //assets.digitalocean.com/articles/pgadmin/table_tree_menu_resized.png [Erweitertes Browser-Baummenü]

Klicken Sie mit der rechten Maustaste auf den Listeneintrag * Tables *, bewegen Sie den Mauszeiger über * Create * und klicken Sie auf * Table… *.

Dies öffnet ein * Create-Table * Fenster. Geben Sie auf der Registerkarte * Allgemein * dieses Fensters einen Namen für die Tabelle ein. Dies kann alles sein, was Sie möchten. Zur Vereinfachung wird dies jedoch als * table-01 * bezeichnet.

image: https: //assets.digitalocean.com/articles/pgadmin/create_table_general_tab_1.png [Tabelle erstellen - Registerkarte Allgemein]

Navigieren Sie dann zur Registerkarte * Columns * und klicken Sie auf das Zeichen * + * in der oberen rechten Ecke des Fensters, um einige Spalten hinzuzufügen. Wenn Sie eine Spalte hinzufügen, müssen Sie ihr einen * Namen * und einen * Datentyp * geben. Möglicherweise müssen Sie eine * Länge * auswählen, wenn dies für den ausgewählten Datentyp erforderlich ist.

Darüber hinaus wird in der offizielle PostgreSQL-Dokumentation angegeben, dass das Hinzufügen eines Primärschlüssels zu einer Tabelle normalerweise die beste Vorgehensweise ist. Ein primärer Schlüssel ist eine Einschränkung, die eine bestimmte Spalte oder einen Satz von Spalten angibt, die bzw. der als spezielle Kennung für Zeilen in der Tabelle verwendet werden kann. Dies ist keine Voraussetzung, aber wenn Sie eine oder mehrere Ihrer Spalten als Primärschlüssel festlegen möchten, schalten Sie den Schalter ganz rechts von "Nein" auf "Ja".

Klicken Sie auf die Schaltfläche * Speichern *, um die Tabelle zu erstellen.

image: https: //assets.digitalocean.com/articles/pgadmin/create_table_add_column_1primkey.png [Tabelle erstellen - Registerkarte Spalten mit aktiviertem Primärschlüssel]

Zu diesem Zeitpunkt haben Sie eine Tabelle erstellt und ein paar Spalten hinzugefügt. Die Spalten enthalten jedoch noch keine Daten. Um Ihrer neuen Tabelle Daten hinzuzufügen, klicken Sie mit der rechten Maustaste auf den Namen der Tabelle im Menü * Browser *, bewegen Sie den Cursor über * Scripts * und klicken Sie auf * INSERT Script *.

Dadurch wird ein neues Bedienfeld im Dashboard geöffnet. Oben sehen Sie eine unvollständige "+ INSERT +" - Anweisung mit den entsprechenden Tabellen- und Spaltennamen. Ersetzen Sie die Fragezeichen (*? *) Durch Dummy-Daten, und achten Sie darauf, dass die hinzugefügten Daten mit den Datentypen übereinstimmen, die Sie für jede Spalte ausgewählt haben. Beachten Sie, dass Sie auch mehrere Datenzeilen hinzufügen können, indem Sie jede Zeile in einen neuen Satz von Klammern setzen, wobei jeder Satz von Klammern durch ein Komma getrennt ist (siehe folgendes Beispiel).

Wenn Sie möchten, können Sie das unvollständige "+ INSERT " - Skript durch die folgende " INSERT +" - Anweisung ersetzen:

INSERT INTO public."table-01"(
   col1, col2, col3)
   VALUES ('Juneau', 14, 337), ('Bismark', 90, 2334), ('Lansing', 51, 556);

Klicken Sie auf das Blitzsymbol (* ⚡ *), um die Anweisung + INSERT + auszuführen. Um die Tabelle und alle darin enthaltenen Daten anzuzeigen, klicken Sie im Menü * Browser * erneut mit der rechten Maustaste auf den Namen Ihrer Tabelle, bewegen Sie den Mauszeiger über * Daten anzeigen / bearbeiten * und wählen Sie * Alle Zeilen *.

image: https://assets.digitalocean.com/articles/pgadmin/view_edit_data_all_rows.png [Daten anzeigen / bearbeiten, Kontextmenü für alle Zeilen]

Daraufhin wird ein weiteres neues Fenster geöffnet, unter dem Sie auf der Registerkarte * Datenausgabe * des unteren Fensters alle in dieser Tabelle enthaltenen Daten anzeigen können.

image: https://assets.digitalocean.com/articles/pgadmin/view_data_output.png [Daten anzeigen - Beispieldatenausgabe]

Damit haben Sie erfolgreich eine Tabelle erstellt und über die pgAdmin-Weboberfläche mit einigen Daten gefüllt. Dies ist natürlich nur eine Methode, mit der Sie mit pgAdmin eine Tabelle erstellen können. Beispielsweise ist es möglich, eine Tabelle mithilfe von SQL anstelle der in diesem Schritt beschriebenen GUI-basierten Methode zu erstellen und aufzufüllen.

Fazit

In diesem Handbuch haben Sie gelernt, wie Sie pgAdmin 4 aus einer virtuellen Python-Umgebung installieren, konfigurieren, mit Apache im Web bereitstellen und mit einer PostgreSQL-Datenbank verbinden. Darüber hinaus wurde in diesem Handbuch eine Methode beschrieben, mit der eine Tabelle erstellt und gefüllt werden kann. PgAdmin kann jedoch nicht nur zum Erstellen und Bearbeiten von Tabellen verwendet werden.

Weitere Informationen dazu, wie Sie alle Funktionen von pgAdmin optimal nutzen können, finden Sie in der Dokumentation zu project’s. Weitere Informationen zu PostgreSQL finden Sie unter Community tutorials zu diesem Thema.