Android

Wie installiert man postgresql auf Ubuntu 18.04

How to Install and configuration PostgreSQL on Ubuntu Linux

How to Install and configuration PostgreSQL on Ubuntu Linux

Inhaltsverzeichnis:

Anonim

PostgreSQL oder Postgres ist ein allgemeines objektrelationales Open-Source-Datenbankverwaltungssystem. PostgreSQL verfügt über viele erweiterte Funktionen, mit denen Sie komplexe Webanwendungen erstellen können.

In diesem Tutorial zeigen wir Ihnen, wie Sie PostgreSQL unter Ubuntu 18.04 installieren und die Grundlagen der grundlegenden Datenbankverwaltung kennenlernen.

Voraussetzungen

Stellen Sie vor dem Fortfahren mit diesem Lernprogramm sicher, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind.

Installieren Sie PostgreSQL unter Ubuntu

Zum Zeitpunkt des Schreibens dieses Artikels ist die neueste Version von PostgreSQL, die im offiziellen Ubuntu-Repository verfügbar ist, PostgreSQL Version 10.4.

Um PostgreSQL auf Ihrem Ubuntu-Server zu installieren, gehen Sie folgendermaßen vor:

  1. PostgreSQL installieren

    Aktualisieren Sie den lokalen Paketindex und installieren Sie den PostgreSQL-Server zusammen mit dem PostgreSQL-Contrib-Paket, das mehrere zusätzliche Funktionen für die PostgreSQL-Datenbank bietet:

    sudo apt update - sudo apt update sudo apt install postgresql postgresql-contrib

    Überprüfen der PostgreSQL-Installation

    Nach Abschluss der Installation wird der PostgreSQL-Dienst automatisch gestartet.

    Um die Installation zu überprüfen, wir werden versuchen, den PostgreSQL - Datenbank - Server mit dem verbinden psql und drucken Sie die Server - Version:

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

psql ist ein interaktives Befehlszeilenprogramm, mit dem Sie mit dem PostgreSQL-Server interagieren können.

PostgreSQL-Rollen und Authentifizierungsmethoden

Datenbankzugriffsberechtigungen in PostgreSQL werden mit dem Konzept der Rollen behandelt. Eine Rolle kann einen Datenbankbenutzer oder eine Gruppe von Datenbankbenutzern darstellen.

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

  • Vertrauen - Bei dieser Methode kann die Rolle eine Verbindung ohne Kennwort herstellen, sofern die in der pg_hba.conf pg_hba.conf definierten Kriterien pg_hba.conf sind. Kennwort - Eine Rolle kann eine Verbindung herstellen, indem ein Kennwort angegeben wird. Die Passwörter können als scram-sha-256 md5 und als password (Klartext) Ident gespeichert werden. - Diese Methode wird nur für TCP / IP-Verbindungen unterstützt. Ermittelt den Benutzernamen des Client-Betriebssystems mit einer optionalen Benutzernamenszuordnung. Peer - Entspricht Ident, wird jedoch nur bei lokalen Verbindungen unterstützt.

Die PostgreSQL- pg_hba.conf wird in der Konfigurationsdatei mit dem Namen pg_hba.conf . Standardmäßig verwendet PostgreSQL für lokale Verbindungen die Peer-Authentifizierungsmethode.

Der 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 als postgres-Benutzer beim PostgreSQL-Server anzumelden, müssen Sie zuerst zum Benutzer postgres wechseln und dann mit dem Dienstprogramm psql auf eine PostgreSQL-Eingabeaufforderung zugreifen:

sudo su - postgres psql

Von hier aus können Sie mit Ihrer PostgreSQL-Instanz interagieren. So beenden Sie den PostgreSQL-Shell-Typ:

\q

Sie können auch auf die PostgreSQL-Eingabeaufforderung zugreifen, ohne die Benutzer mit dem Befehl sudo zu wechseln:

sudo -u postgres psql

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

Erstellen von PostgreSQL-Rollen und -Datenbanken

Mit dem Befehl createuser können Sie über die Befehlszeile neue Rollen erstellen. Nur Superuser und Rollen mit CREATEROLE Berechtigungen können neue Rollen erstellen.

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

  1. Erstellen Sie eine neue PostgreSQL-Rolle

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

    sudo su - postgres -c "createuser john"

    Erstellen Sie eine neue PostgreSQL-Datenbank

    Erstellen Sie mit dem Befehl createdb eine neue Datenbank mit dem Namen johndb:

    sudo su - postgres -c "createdb johndb"

    Berechtigungen gewähren

    john Verbindung zur PostgreSQL-Shell her, um dem Benutzer john Berechtigungen für die im vorherigen Schritt erstellte Datenbank zu erteilen:

    sudo -u postgres psql

    und führen Sie die folgende Abfrage aus:

    grant all privileges on database johndb to john;

Aktivieren Sie den Remotezugriff auf den PostgreSQL-Server

Standardmäßig überwacht der PostgreSQL-Server nur die lokale 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 = '*' im Abschnitt CONNECTIONS AND AUTHENTICATION .

sudo vim /etc/postgresql/10/main/postgresql.conf /etc/postgresql/10/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

Überprüfen Sie die Änderungen mit dem Dienstprogramm ss :

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, überwacht der PostgreSQL-Server alle Schnittstellen (0.0.0.0).

Im letzten Schritt konfigurieren Sie den Server so, dass er pg_hba.conf akzeptiert, indem Sie die Datei pg_hba.conf .

Nachfolgend einige Beispiele für verschiedene Anwendungsfälle:

/etc/postgresql/10/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

Fazit

Sie haben gelernt, wie Sie PostgreSQL auf Ihrem Ubuntu 18.04-Server installieren und konfigurieren.

Weitere Informationen zu diesem Thema finden Sie in der PostgreSQL 10.4-Dokumentation.

Ubuntu Postgresql-Datenbank