GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie PostgreSQL unter Debian 9

PostgreSQL, oft einfach als Postgres bekannt, ist ein universelles objektrelationales Open-Source-Datenbankverwaltungssystem. PostgreSQL verfügt über viele erweiterte Funktionen wie Online-Backups, Point-in-Time-Recovery, verschachtelte Transaktionen, SQL- und JSON-Abfragen, Multiversion Concurrency Control (MVCC), asynchrone Replikation und mehr.

In diesem Tutorial zeigen wir Ihnen, wie Sie PostgreSQL unter Debian 9 installieren und die Grundlagen der grundlegenden Datenbankverwaltung erkunden.

Voraussetzungen #

Bevor Sie mit diesem Tutorial fortfahren, vergewissern Sie sich, dass der Benutzer, als der Sie angemeldet sind, über sudo-Berechtigungen verfügt.

PostgreSQL wird installiert #

Zum Zeitpunkt der Erstellung dieses Artikels war die neueste Version von PostgreSQL, die in den Debian-Repositories verfügbar ist, PostgreSQL Version 9.6.

Führen Sie die folgenden Schritte aus, um PostgreSQL auf Ihrem Debian-Server zu installieren:

  1. Beginnen Sie damit, den lokalen Paketindex zu aktualisieren:

    sudo apt update
  2. Installieren Sie den PostgreSQL-Server und das PostgreSQL-Contrib-Paket, das zusätzliche Funktionen für die PostgreSQL-Datenbank bereitstellt:

    sudo apt install postgresql postgresql-contrib
  3. Wenn die Installation abgeschlossen ist, wird der PostgreSQL-Dienst automatisch gestartet. Um die Installation zu überprüfen, stellen wir mithilfe von psql eine Verbindung zum PostgreSQL-Datenbankserver her und drucken Sie die Serverversion aus:

    sudo -u postgres psql -c "SELECT version();"

    Die Ausgabe sieht folgendermaßen aus:

                                                     version                                                  
    -----------------------------------------------------------------------------------------------------------
    PostgreSQL 9.6.10 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit
    (1 row)
Psql ist ein interaktives Terminalprogramm, mit dem Sie mit dem PostgreSQL-Server interagieren können.

PostgreSQL-Rollen und Authentifizierungsmethoden #

PostgreSQL handhabt Datenbankzugriffsberechtigungen unter Verwendung des Konzepts von Rollen. Eine Rolle kann einen Datenbankbenutzer oder eine Gruppe von Datenbankbenutzern darstellen.

PostgreSQL unterstützt eine Reihe von Authentifizierungsmethoden. Die am häufigsten verwendeten Methoden sind:

  • Vertrauen - Mit dieser Methode kann sich die Rolle ohne Passwort verbinden, solange die in der pg_hba.conf definierten Kriterien erfüllt werden erfüllt sind.
  • Passwort – Eine Rolle kann eine Verbindung herstellen, indem sie ein Passwort bereitstellt. Die Passwörter können als scram-sha-256 gespeichert werden md5 und password (Klartext)
  • Ident - Diese Methode wird nur bei TCP/IP-Verbindungen unterstützt. Funktioniert durch Abrufen des Benutzernamens des Betriebssystems des Clients mit einer optionalen Benutzernamenzuordnung.
  • Peer - Dasselbe wie Ident, wird aber nur bei lokalen Verbindungen unterstützt.

Die PostgreSQL-Clientauthentifizierung wird in der Konfigurationsdatei mit dem Namen pg_hba.conf definiert . Standardmäßig ist PostgreSQL für lokale Verbindungen auf die Verwendung der Peer-Authentifizierungsmethode eingestellt.

Das postgres Benutzer wird automatisch erstellt, wenn Sie PostgreSQL installieren. Dieser Benutzer ist der Superuser für die PostgreSQL-Instanz und entspricht dem MySQL-Root-Benutzer.

Um sich beim PostgreSQL-Server als postgres-Benutzer anzumelden, müssen Sie zuerst zum Benutzer postgres wechseln und können dann mit psql auf eine PostgreSQL-Eingabeaufforderung zugreifen Dienstprogramm:

sudo su - postgrespsql

Von hier aus können Sie mit Ihrer PostgreSQL-Instanz interagieren. Um die PostgreSQL-Shell zu verlassen, geben Sie Folgendes ein:

\q

Sie können das sudo verwenden Befehl, um auf die PostgreSQL-Eingabeaufforderung zuzugreifen, ohne den Benutzer zu wechseln:

sudo -u postgres psql

Das postgres Benutzer wird normalerweise nur vom lokalen Host verwendet und es wird empfohlen, das Passwort nicht für diesen Benutzer festzulegen.

PostgreSQL-Rolle und -Datenbank erstellen #

Sie können neue Rollen über die Befehlszeile mit createuser erstellen Befehl. Nur Superuser und Rollen mit CREATEROLE Berechtigung kann neue Rollen erstellen.

Im folgenden Beispiel erstellen wir eine neue Rolle mit dem Namen john eine Datenbank namens johndb und Berechtigungen für die Datenbank erteilen.

  1. Erstellen Sie eine neue PostgreSQL-Rolle

    Der folgende Befehl erstellt eine neue Rolle mit dem Namen „john“:

    sudo su - postgres -c "createuser john"
  2. Erstellen Sie eine neue PostgreSQL-Datenbank

    Erstellen Sie mithilfe von createdb eine neue Datenbank mit dem Namen „johndb“. Befehl:

    sudo su - postgres -c "createdb johndb"
  3. Berechtigungen erteilen

    Um dem john Berechtigungen zu erteilen user in der Datenbank, die wir im vorherigen Schritt erstellt haben, verbinden Sie sich mit der PostgreSQL-Shell:

    sudo -u postgres psql

    und führen Sie die folgende Abfrage aus:

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

Aktivieren Sie den Fernzugriff auf den PostgreSQL-Server #

Standardmäßig lauscht der PostgreSQL-Server nur auf der lokalen Schnittstelle 127.0.0.1 . Um den Fernzugriff auf Ihren PostgreSQL-Server zu aktivieren, öffnen Sie die Konfigurationsdatei postgresql.conf und fügen Sie listen_addresses = '*' hinzu in CONNECTIONS AND AUTHENTICATION Abschnitt.

sudo vim /etc/postgresql/9.6/main/postgresql.conf
/etc/postgresql/9.6/main/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

Speichern Sie die Datei und starten Sie den PostgreSQL-Dienst neu mit:

sudo service postgresql restart

Bestätigen Sie die Änderungen mit ss Dienstprogramm:

ss -nlt | grep 5432
LISTEN   0         128                 0.0.0.0:5432             0.0.0.0:*
LISTEN   0         128                    [::]:5432                [::]:*

Wie Sie der obigen Ausgabe entnehmen können, lauscht der PostgreSQL-Server auf allen Schnittstellen (0.0.0.0).

Der letzte Schritt besteht darin, den Server so zu konfigurieren, dass er Remote-Verbindungen akzeptiert, indem Sie die pg_hba.conf bearbeiten Datei.

Unten sind einige Beispiele, die verschiedene Anwendungsfälle zeigen:

/etc/postgresql/9.6/main/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane will be able to access all databases from all locations using a md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane will be able to access only the janedb from all locations using a md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

Debian
  1. So installieren Sie R unter Debian 9

  2. So installieren Sie PostgreSQL unter Debian 10

  3. So installieren Sie PostgreSQL 11/10 auf Debian 9 und Debian 8

  4. So installieren Sie PostgreSQL unter Debian 11 / Debian 10

  5. So installieren Sie phpPgAdmin unter Debian 9

So installieren Sie PostgreSQL unter Debian 10 Buster

So installieren Sie Git unter Debian 10

So installieren Sie Go unter Debian 10

So installieren Sie PostgreSQL unter Debian 11

Wie installiere ich PostgreSQL unter Debian 11?

So installieren Sie Go unter Debian