GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie PostgreSQL unter Ubuntu 20.04

PostgreSQL oder Postgres ist ein universelles objektrelationales Open-Source-Datenbankverwaltungssystem mit vielen erweiterten Funktionen, mit denen Sie fehlertolerante Umgebungen oder komplexe Anwendungen erstellen können.

In diesem Handbuch erklären wir, wie Sie den PostgreSQL-Datenbankserver unter Ubuntu 20.04 installieren, und erkunden die Grundlagen der PostgreSQL-Datenbankverwaltung.

Voraussetzungen #

Um Pakete installieren zu können, müssen Sie als Root oder Benutzer mit sudo-Berechtigungen angemeldet sein.

Installieren Sie PostgreSQL auf Ubuntu #

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

Führen Sie die folgenden Befehle aus, um den PostgreSQL-Server auf Ubuntu zu installieren:

sudo apt updatesudo apt install postgresql postgresql-contrib

Wir installieren auch das PostgreSQL-Contrib-Paket, das mehrere zusätzliche Funktionen für das PostgreSQL-Datenbanksystem bereitstellt.

Sobald die Installation abgeschlossen ist, wird der PostgreSQL-Dienst automatisch gestartet. Verwenden Sie das psql Tool, um die Installation zu überprüfen, indem Sie sich mit dem PostgreSQL-Datenbankserver verbinden und seine Version ausdrucken:

sudo -u postgres psql -c "SELECT version();"
PostgreSQL 12.2 (Ubuntu 12.2-4) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-8ubuntu1) 9.3.0, 64-bit

Das ist es. PostgreSQL wurde installiert und Sie können es verwenden.

PostgreSQL-Rollen und Authentifizierungsmethoden #

Datenbankzugriffsberechtigungen innerhalb von PostgreSQL werden mit dem Rollenkonzept gehandhabt. Eine Rolle kann einen Datenbankbenutzer oder eine Gruppe von Datenbankbenutzern darstellen.

PostgreSQL unterstützt mehrere Authentifizierungsmethoden. Die am häufigsten verwendeten Methoden sind:

  • Vertrauen - Eine Rolle kann sich ohne Passwort verbinden, solange die in der pg_hba.conf definierten Bedingungen erfüllt sind 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 - Wird nur auf TCP/IP-Verbindungen unterstützt. Es funktioniert, indem es den Benutzernamen des Betriebssystems des Clients erhält, 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 verwendet PostgreSQL die Peer-Authentifizierungsmethode für lokale Verbindungen.

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 anzumelden Benutzer, wechseln Sie zuerst zum Benutzer und greifen Sie dann mit psql auf die PostgreSQL-Eingabeaufforderung zu 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

Eine andere Möglichkeit, auf die PostgreSQL-Eingabeaufforderung zuzugreifen, ohne den Benutzer zu wechseln, ist die Verwendung von sudo Befehl:

sudo -u postgres psql

Im Allgemeinen sollten Sie sich beim Datenbankserver als postgres anmelden nur vom localhost.

PostgreSQL-Rolle und -Datenbank erstellen #

Nur Superuser und Rollen mit CREATEROLE Berechtigung kann neue Rollen erstellen.

Das folgende Beispiel zeigt, wie Sie eine neue Rolle mit dem Namen john erstellen eine Datenbank namens johndb und gewähren Sie Berechtigungen für die Datenbank:

  1. Erstellen Sie eine neue PostgreSQL-Rolle:

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

    sudo su - postgres -c "createdb johndb"

Um dem Benutzer Berechtigungen für die Datenbank zu erteilen, stellen Sie eine Verbindung zur PostgreSQL-Shell her:

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 nano /etc/postgresql/12/main/postgresql.conf
/etc/postgresql/12/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:

sudo service postgresql restart

Bestätigen Sie die Änderungen mit ss Dienstprogramm:

ss -nlt | grep 5432

Die Ausgabe zeigt, dass der PostgreSQL-Server auf allen Schnittstellen lauscht (0.0.0.0 ):

LISTEN  0        244              0.0.0.0:5432           0.0.0.0:*              
LISTEN  0        244                 [::]:5432              [::]:* 

Der nächste 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/12/main/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb from all locations using md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

Der letzte Schritt besteht darin, den Port 5432 zu öffnen in Ihrer Firewall.

Angenommen, Sie verwenden UFW um Ihre Firewall zu verwalten, und Sie möchten den Zugriff von 192.168.1.0/24 zulassen subnet, würden Sie den folgenden Befehl ausführen:

sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432

Stellen Sie sicher, dass Ihre Firewall so konfiguriert ist, dass sie nur Verbindungen von vertrauenswürdigen IP-Bereichen akzeptiert.


Ubuntu
  1. So installieren Sie PostgreSQL unter Ubuntu 18.04

  2. So installieren Sie PostgreSQL unter Ubuntu 18.04

  3. So installieren Sie PostgreSQL 9.5 auf Ubuntu (12.04 - 15.10)

  4. So installieren Sie pgAdmin4 unter Ubuntu

  5. Installieren Sie PostgreSQL auf Ubuntu 20.04

So installieren Sie Observium unter Ubuntu 15.04

So installieren Sie Joomla auf Ubuntu 16.04

So installieren Sie PostgreSQL unter Ubuntu 16.04

So installieren Sie PostgreSQL unter Ubuntu 18.04 LTS

So installieren Sie PostgreSQL unter Ubuntu 20.04 LTS

So installieren Sie PostgreSQL unter Ubuntu 22.04