Wie man PostgreSQL und pgAdmin unter FreeBSD 11 installiert

PostgreSQL, kurz Postgres, ist ein Open-Source-Objekt-Relationales Datenbank-Management-System (ORDBMS). Es befindet sich seit 1996 in der aktiven Entwicklung und hat sich zu einem der besten ORDMS entwickelt. Es unterstützt alle Funktionen von RDBMS sowie objektorientierte Datenbankmodelle. Objekte, Klassen und Vererbung werden in Datenbankschemata und in der Abfragesprache direkt unterstützt. PostgreSQL kann verwendet werden, um die Datenbank für eine Vielzahl von Anwendungen zu hosten, die von kleinen Websites bis hin zu großen Cloud-basierten Anwendungen oder Data Warehousing reichen.

In diesem Tutorial erfahren Sie, wie Sie PostgreSQL und pgAdmin auf einem FreeBSD 11-Server installieren.

Voraussetzung

  • Minimaler FreeBSD 11 Server. 8 GB RAM empfohlen.
  • Sudo-Benutzer mit Root-Rechten.

Installation von PostgreSQL

Aktualisieren Sie zunächst die Repository-Informationen des Servers.

sudo pkg update

pkg ist der eingebaute Paketmanager für FreeBSD. Als nächstes laden Sie die PostgreSQL-Server- und Client-Pakete herunter und installieren sie.

sudo pkg install postgresql96-server postgresql96-client

Drücken Sie y, um mit der Installation fortzufahren. pkg findet und installiert nun die angegebenen Pakete mit den erforderlichen Abhängigkeiten.

Wenn die Installation abgeschlossen ist, aktivieren Sie PostgreSQL so, dass es beim Booten automatisch startet.

sudo sysrc postgresql_enable=yes

Um PostgreSQL beim Booten zu starten, können Sie alternativ auch postgresql_enable=“YES“ am Ende der /etc/rc.conf mit einem Ihrer bevorzugten Texteditoren hinzufügen.

Initialisieren Sie nun die Datenbank mit dem folgenden Befehl.

sudo service postgresql initdb

initdb erstellt einen neuen postgresql-Datenbank-Cluster, der eine Sammlung von Datenbanken ist, die von einer einzigen Serverinstanz verwaltet werden.

Sie können nun den PostgreSQL-Datenbankserver mit dem folgenden Befehl starten.

sudo service postgresql start

Der PostgreSQL-Datenbankserver ist nun installiert.

Fernverbindungen und Passwortauthentifizierungen aktivieren

Wenn Sie remote auf den Datenbankserver zugreifen möchten, müssen Sie einige Änderungen an der PostgreSQL-Konfiguration vornehmen. In diesem Tutori werde ich den Nano-Editor verwenden. Wenn Sie nano nicht installiert haben, können Sie es ausführen:

sudo pkg install nano

Öffnen Sie die Konfigurationsdatei mit dem Nano-Editor.

sudo nano /var/db/postgres/data96/postgresql.conf

Scrollen Sie nach unten, um die untenstehenden Zeilen zu finden. Entkommentiere listen_addresses und ändere den Wert von localhost auf *. Sie können auch den Standardport von 5432 auf einen beliebigen anderen Wert ändern.

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'         # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
#port = 5432                            # (change requires restart)
max_connections = 100                   # (change requires restart)
#superuser_reserved_connections = 3     # (change requires restart)
#unix_socket_directories = '/tmp'       # comma-separated list of directories

Standardmäßig erlaubt PostgreSQL jedem, eine Verbindung zur psql-Shell herzustellen, ohne den Benutzer zu authentifizieren, der bereits als PostgreSQL-Benutzer angemeldet ist. Wenn die Datenbank öffentlich zugänglich ist, müssen Sie die Authentifizierungsmethode auf etwas Sichereres ändern. Sie können die md5-Authentifizierungsmethode verwenden, die zur Authentifizierung ein verschlüsseltes Passwort verwendet. Darüber hinaus können Sie auch die IP-Adressen angeben, die für die Authentifizierung zugelassen sind.

Öffnen Sie die Datei pg_hba.conf mit Ihrem bevorzugten Texteditor.

sudo nano /var/db/postgres/data96/pg_hba.conf

Ändern Sie die Methode der Authentifizierung von Vertrauen auf md5 für die Verbindung vom Hosttyp. Fügen Sie außerdem die Adresse des Client-Rechners hinzu, von dem aus auf die Datenbank zugegriffen werden soll. Um allen Clients die Verwendung von md5-basierter Authentifizierung zu ermöglichen, verwenden Sie 0.0.0.0.0.0/0 als Adresse.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             0.0.0.0/0               md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Damit die oben genannten Änderungen wirksam werden, müssen Sie den PostgreSQL-Server neu starten.

sudo service postgresql restart

Passwort ändern und Benutzer anlegen

Standardmäßig erstellt PostgreSQL einen Benutzer postgres und gruppiert postgres, um die PostgreSQL-Instanz zu pflegen. Um das Passwort für den postgres-Benutzer festzulegen, führen Sie den folgenden Befehl aus.

sudo passwd postgres

Nachdem Sie das Passwort geändert haben, melden Sie sich als postgres-Benutzer an.

su - postgres

Sie können nun die PostgreSQL-Shell mit dem folgenden Befehl eingeben.

psql

Sie werden sehen, dass sich die Shell in eine PostgreSQL-Shell geändert hat.

psql (9.6.3)
Type "help" for help.

postgres=#

Sie können nun SQL-Abfragen von dieser Shell aus ausführen. Um die PostgreSQL-Shell zu verlassen, geben Sie \q oder \quit ein.

Sie können eine neue Rolle interaktiv durch Tippen erstellen:

createuser --interactive

Das Skript fordert Sie auf, den Benutzernamen einzugeben und festzustellen, ob der Benutzer ein Superuser ist.

$ createuser --interactive
Enter name of role to add: new_user
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) y

Alternativ können Sie auch laufen:

createuser -sdrP new_user

Die Bedeutung der Parameter ist wie folgt.

  • s: Dieser Benutzer wird zum Superuser.
  • d: Dieser Benutzer kann neue Datenbanken erstellen.
  • r: Dieser Benutzer kann neue Rollen anlegen.
  • P: Weisen Sie dieser Rolle ein Passwort zu.

Der obige Befehl fragt auch nach dem Passwort für den new_user.

Um eine neue Datenbank zu erstellen, können Sie den folgenden Befehl ausführen.

createdb new_db

Wechseln Sie nun zur PostgreSQL-Shell mit Hilfe von psql Befehl. Wenn es für den Benutzer kein Passwort gibt, geben Sie das Passwort des neu erstellten Kontos an:

ALTER USER new_user WITH ENCRYPTED PASSWORD 'password';

Vergeben Sie nun alle Berechtigungen der Datenbank an den neu erstellten Benutzer, indem Sie die Abfrage ausführen:

GRANT ALL PRIVILEGES ON DATABASE new_db TO new_user;

Verlassen Sie den Editor, indem Sie \q.

Installation von pgAdmin

pgAdmin ist die beliebteste Open-Source-Anwendung zur Verwaltung eines PostgreSQL-Datenbankservers. pgAdmin bietet eine funktionsreiche grafische Benutzeroberfläche zur einfachen Verwaltung der Datenbanken. Es ist in Python und Javascript/jQuery geschrieben. Es ist in verschiedenen Umgebungen wie Linux, Windows, Unix und im Desktop- und Servermodus verfügbar.

In diesem Tutorial installieren wir pgAdmin im Server-Modus auf dem gleichen Server, auf dem wir PostgreSQl installiert haben.

pip ist ein Paketmanager für Python-Pakete. Es wird zur Installation und Verwaltung von Python-Paketen und -Abhängigkeiten verwendet. Wenn du als postgres-Benutzer angemeldet bist, musst du auf den normalen Benutzer mit sudo-Rechten wechseln.

su - sudo_user

Um die Rohrleitung auf Ihrem System zu installieren, führen Sie aus:

sudo python -m ensurepip

Es wird empfohlen, virtualenv zu verwenden, um eine isolierte Python-Umgebung zu erstellen. Virtualenv schafft eine Umgebung mit einer eigenen Python-Installation, die Bibliotheken mit globaler oder einer anderen virtuellen Umgebung nicht unterstützt. Führen Sie den folgenden Befehl zur Installation von Virtualenv aus.

sudo pkg install py27-virtualenv

Erstellen Sie nun eine virtuelle Umgebung für pgAdmin, indem Sie sie ausführen:

virtualenv pgadmin4

Aktivieren Sie die virtuelle Umgebung durch Tippen:

. pgadmin4/bin/activate

Du wirst sehen, dass sich die Shell auf (pgadmin4) $ geändert hat.

Installieren Sie wenige Python-Abhängigkeiten durch Eingabe:

sudo pip install cryptography pyopenssl ndg-httpsclient pyasn1

Kryptographiepaket bietet kryptographische Werkzeuge, pyopenssl ist das Python-Wrapper-Modul für die OpenSSL-Bibliothek. ndg-httpsclient nutzte pyopenssl, um erweiterte HTTPS-Unterstützung bereitzustellen, und pyasn1 ist die Python-Implementierung von ASN.1. Diese Pakete werden benötigt, damit pgAdmin funktioniert.

pgAdmin4 benötigt auch das SQLite-Paket. SQLite ist auch ein von SQL unterstütztes Datenbankmanagementsystem. Anstatt einen separaten Server zu benötigen, speichert SQLite die Daten in flachen Dateien auf der Festplatte. Installieren Sie das Python SQLite3-Paket, indem Sie Folgendes eingeben:

sudo pkg install py27-sqlite3

Laden Sie das Python-Rad-Paket für pgAdmin herunter, indem Sie Folgendes eingeben:

wget --no-check-certificate https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v1.5/pip/pgadmin4-1.5-py2.py3-none-any.whl

Sie können jederzeit nach dem Link zur neuesten Version der Anwendung auf der pgAdmin-Downloadseite suchen.

Installieren Sie nun das Paket, indem Sie es ausführen:

pip install pgadmin4-1.5-py2.py3-none-any.whl

Sie können die Anwendung nun mit:

python ./pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py

Beim ersten Start fragt der obige Befehl nach Ihrer E-Mail-Adresse und Ihrem Passwort, um den ersten pgAdmin-Benutzer anzulegen.

(pgadmin4) $ python ./pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py
NOTE: Configuring authentication for SERVER mode.

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

Email address: your_email
Password: your_new_password
Retype password:
Starting pgAdmin 4. Please navigate to http://localhost:5050 in your browser.

Der obige Befehl startet den Server auf Port 5050 und hört nur auf localhost. Um von außerhalb des Netzwerks auf den Server zuzugreifen, müssen Sie einige Konfigurationsänderungen vornehmen. Kopieren Sie die Konfigurationsdatei pgAdmin.

sudo cp ./pgadmin4/lib/python2.7/site-packages/pgadmin4/config.py ./pgadmin4/lib/python2.7/site-packages/pgadmin4/config_local.py

Bearbeiten Sie nun die lokale Kopie der Konfigurationsdatei mit Ihrem bevorzugten Editor.

sudo nano ./pgadmin4/lib/python2.7/site-packages/pgadmin4/config_local.py

Ändern Sie den Standardserverwert von localhost auf 0.0.0.0.0.0, wenn Sie möchten, können Sie auch den Port ändern, auf dem die Anwendung lauscht.

DEFAULT_SERVER = '0.0.0.0'

# The default port on which the app server will listen if not set in the
# environment by the runtime
DEFAULT_SERVER_PORT = 5050

Starten Sie den Server erneut, indem Sie Folgendes eingeben:

python ./pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py

Sie können nun auf die pgAdmin-Schnittstelle unter http://your_server_IP:5050 zugreifen.

Fazit

Sie sollten nun PostgreSQL und pgAdmin auf Ihrem Server installiert haben. Sie können nun pgAdmin verwenden, um die Datenbanken auf dem PostgreSQL-Server zu verwalten.

Das könnte dich auch interessieren …