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

So installieren und konfigurieren Sie Postgres 13 Ubuntu 20.04

Postgresql ist ein objektrelationales Open-Source-Datenbanksystem mit über 30 Jahren aktiver Entwicklung, das ihm einen guten Ruf für Zuverlässigkeit, Funktionsrobustheit und Leistung eingebracht hat. Postgres ist ein kostenloses und quelloffenes Verwaltungssystem für relationale Datenbanken, das auf Erweiterbarkeit und SQL-Konformität Wert legt. Es hieß ursprünglich POSTGRES und bezog sich auf seinen Ursprung als Nachfolger der Ingres-Datenbank, die an der University of California, Berkeley, entwickelt wurde. PostgreSQL wird als primärer Datenspeicher oder Data Warehouse für viele Web-, Mobil-, Geodaten- und Analyseanwendungen verwendet. PostgreSQL kann strukturierte und unstrukturierte Daten in einem einzigen Produkt speichern.

Überprüfen Sie auch:

  • Postgres-Berechtigungen – Datenbankbenutzer erstellen, aktualisieren, löschen
  • So installieren und konfigurieren Sie Postgres 14 Ubuntu 20.04
  • So installieren und konfigurieren Sie Postgres 14 auf Centos 8
  • So installieren und konfigurieren Sie Postgres 13 auf Centos 8
  • Postgresql 14 mit Docker und Docker-Compose ausführen
  • So installieren und konfigurieren Sie Postgres 13 Ubuntu 20.04
  • So installieren und konfigurieren Sie Postgres 14 auf Debian 11
  • So installieren und konfigurieren Sie Postgres 14 auf Fedora 34
  • So installieren und konfigurieren Sie Postgres 14 auf OpenSUSE Leap 15.3

Voraussetzungen

Um mitzumachen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  1. Ubuntu 20.04-Server
  2. Root-Zugriff auf den Server oder Benutzer mit Root-Zugriff
  3. Internetzugang vom Server
  4. Kenntnisse des Linux-Terminals

Inhaltsverzeichnis

  1. Stellen Sie sicher, dass Ihr System auf dem neuesten Stand ist
  2. Installieren von Postgres 13
  3. Authentifizierungsmethoden für PostgreSQL-Rollen und -Datenbanken
  4. Verbindung zur Postgres-Datenbank herstellen
  5. Postgres-Instanz für Fernzugriff konfigurieren
  6. Benutzerverwaltung
  7. Verbindung zur Instanz vom Remote-Host herstellen

1. Stellen Sie sicher, dass Ihr System auf dem neuesten Stand ist

Lassen Sie uns den lokalen Paketindex Ihres Servers mit diesem Befehl aktualisieren:

sudo apt update 

Dann aktualisieren wir die Pakete in unserem System damit:

sudo apt -y upgrade 

2. Installation von Postgres 13

Postgres wird in den standardmäßigen Ubuntu-Repositories bereitgestellt. Verwenden Sie diesen Befehl, um die bereitgestellte Version zu überprüfen:

sudo apt-cache search postgresql | grep postgresql 

Die von den Standard-Repositories bereitgestellten Standardpakete sind postgres 12. Wenn Sie an Postgres 12 interessiert sind, können Sie es mit den folgenden Befehlen installieren. Der -contrib Paket, das einige zusätzliche Dienstprogramme und Funktionen hinzufügt:

sudo apt install postgresql postgresql-contrib 

Da wir Postgres 13 installieren möchten, müssen wir ein zusätzliches Repository hinzufügen, das die Pakete bereitstellt.

Erstellen Sie die Datei-Repository-Konfiguration mit diesem Befehl:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' 

Importieren Sie dann den Repository-Signaturschlüssel:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 

Jetzt aktualisieren wir die Paketlisten:

sudo apt-get update 

Dann installieren wir die spezifische Version von Postgres, die wir wollen. Verwenden Sie postgresql-13 statt postgresql :

sudo apt-get -y install postgresql-13 

Nach erfolgreicher Installation wird Postgres 13 gestartet.

Verwenden Sie diesen Befehl, um den Dienststatus zu überprüfen:

# systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Fri 2021-08-06 17:59:37 UTC; 1min 25s ago
   Main PID: 25741 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 9257)
     CGroup: /system.slice/postgresql.service

Aug 06 17:59:37 frhb64566ds systemd[1]: Starting PostgreSQL RDBMS...
Aug 06 17:59:37 frhb64566ds systemd[1]: Finished PostgreSQL RDBMS. 

Als Nächstes überprüfen wir die Installation, indem wir eine Verbindung zum PostgreSQL-Datenbankserver herstellen und seine Version überprüfen. Verwenden Sie diesen Befehl:

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

Ausgabe:

version ---------------------------------------------------------------------------------------------------------------------------------------- PostgreSQL 13.3 (Ubuntu 13.3-1.pgdg20.04+1) on aarch64-unknown-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bit (1 row)

3. Authentifizierungsmethoden für PostgreSQL-Rollen und -Datenbanken

PostgreSQL verwendet ein Konzept namens roles um die Client-Authentifizierung und -Autorisierung zu handhaben. Postgres ist standardmäßig so eingerichtet, dass es die ident authentication verwendet , was bedeutet, dass es Postgres-Rollen mit einem übereinstimmenden Unix/Linux-Systemkonto verknüpft. Wenn eine Rolle in Postgres existiert, kann sich ein Unix/Linux-Benutzername mit demselben Namen als diese Rolle anmelden.

Beim Installationsvorgang wurde ein Benutzerkonto mit dem Namen postgres erstellt, das der standardmäßigen postgres-Rolle zugeordnet ist. Um PostgreSQL zu verwenden, können Sie sich bei diesem Konto anmelden.

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

  • Trust – Eine Rolle kann sich ohne Passwort verbinden, solange die in der pg_hba.conf definierten Bedingungen erfüllt sind erfüllt sind.
  • Password – Eine Rolle kann sich verbinden, indem sie ein Passwort angibt. Die Passwörter können als scram-sha-256 gespeichert werden , md5 , und Password (clear-text ).
  • Ident – Wird nur bei 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 auf lokalen Verbindungen unterstützt.

4. Verbindung zur Postgres-Datenbank herstellen

1. Durch den Wechsel zu postres Benutzer

Wechseln Sie zum Postgres-Konto auf Ihrem Server, indem Sie Folgendes eingeben:

sudo -i -u postgres 

Sie können jetzt sofort auf eine Postgres-Eingabeaufforderung zugreifen, indem Sie Folgendes eingeben:

$ psql
psql (13.3)
Type "help" for help.

postgres=# ein 

Dadurch werden Sie bei der PostgreSQL-Eingabeaufforderung angemeldet, und von hier aus können Sie sofort mit dem Datenbankverwaltungssystem interagieren.

2. Durch Ausführen des Befehls als Postgres-Benutzer

Verwenden Sie dies, um den Befehl direkt als postgres auszuführen Benutzer mit sudo

sudo -u postgres psql 

5. Postgres-Instanz für Fernzugriff konfigurieren

Postgres ist standardmäßig nur für den lokalen Zugriff eingerichtet. Dies ist nicht ideal, wenn wir von einem anderen Host auf unseren Server zugreifen möchten. In diesem Abschnitt werden wir Postgres konfigurieren, um den Zugriff von entfernten Hosts zu ermöglichen.

Die Postgres 13-Konfigurationsdatei finden Sie in diesem Pfad /etc/postgresql/13/main/pg_hba.conf

Ändern Sie die Peer-Identifikation in Trust

Verwenden Sie diesen Befehl, um den peer zu ändern trust

sed -i '/^local/s/peer/trust/' /etc/postgresql/13/main/pg_hba.conf 

Identifikation auf md5 ändern

Um die Passwortanmeldung zuzulassen, ändern Sie ident zu md5 für jede Hostkonfiguration

sed -i '/^host/s/ident/md5/' /etc/postgresql/13/main/pg_hba.conf 

Fügen Sie einen Block hinzu, um den Zugriff von überall zu ermöglichen

Fügen Sie diesen Inhalt der Datei /etc/postgresql/13/main/pg_hba.conf hinzu So erlauben Sie allen Hosts den Passwortzugriff:

host    all             all             0.0.0.0/0                md5 

Stellen Sie sicher, dass PostgreSQL * überwacht

Fügen Sie diese Zeile hier zur Konfiguration hinzu /etc/postgresql/13/main/postgresql.conf Postgres erlauben, auf allen Hosts zu lauschen

listen_addresses='*' 

Um die Konfigurationen anzuwenden, müssen wir den Postgres 13-Dienst neu starten.

Aktivieren Sie den postgresql-Server und starten Sie ihn neu, um die Konfigurationen neu zu laden:

sudo systemctl restart postgresql
sudo systemctl enable postgresql 

6. Benutzerverwaltung

Superuser erstellen:

Es wäre besser, wenn wir einen Superuser erstellen würden, um den Postgres-Dienst zu verwalten. Dies ist der eine Benutzer, der berechtigt ist, andere Benutzer und Datenbanken zu verwalten.

Verbinden Sie sich mit der DB als postres Rolle

$ sudo -u postgres psql
psql (13.3 (Ubuntu 13.3-1.pgdg20.04+1))
Type "help" for help.

postgres=# ein 

Erstellen Sie einen Superuser mit dem Namen root mit diesem Befehl:

CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere'; 

Überprüfen Sie den Benutzer, ob er erstellt wurde und ihm die erforderlichen Berechtigungen erteilt wurden:

postgres=# CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';
CREATE ROLE
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 root      | Superuser, Create role, Create DB                          | {} ``` 

Anwendungsbenutzer verwalten

Verwenden Sie dies, um eine Datenbank zu erstellen, erstellen Sie einen Benutzer und gewähren Sie diesem Benutzer alle Zugriffe auf diese Datenbank:

create database app_db_name;
create user app_user with encrypted password 'dbpassword';
grant all privileges on database app_db_name to app_user; 

Sehen Sie sich diese umfassende Anleitung zur Benutzer- und Berechtigungsverwaltung in Postgres hier an.

7. Herstellen einer Verbindung zur Instanz vom Remote-Host

Verwenden Sie diesen Befehl, um zu testen, ob Sie eine Verbindung herstellen können:

psql 'postgres://<username>:<password>@<host>:<port>/<db>?sslmode=disable'

# like
psql 'postgres://root:[email protected]:5432/postgres?sslmode=disable' 

Schlussfolgerung

Bis zu diesem Punkt haben wir es geschafft, Postgresql 13 auf einem Ubuntu-Server zu installieren, einige grundlegende Konfigurationen vorzunehmen und dann die grundlegende Benutzerverwaltung durchzuführen.


Ubuntu
  1. So installieren und konfigurieren Sie Redis unter Ubuntu 18.04

  2. So installieren und konfigurieren Sie Redmine unter Ubuntu 18.04

  3. So installieren Sie Postgresql und phpPgAdmin unter Ubuntu 15.04

  4. So installieren und konfigurieren Sie Postgres 14 Ubuntu 20.04

  5. So installieren und konfigurieren Sie Postgres 14 unter Debian 11

So installieren und konfigurieren Sie GitLab unter Ubuntu 16.04

So installieren und konfigurieren Sie Cacti unter Ubuntu 20.04

So installieren und konfigurieren Sie Git unter Ubuntu 20.04

So installieren und konfigurieren Sie OpenVAS 9 unter Ubuntu

So installieren und konfigurieren Sie PostgreSQL unter Ubuntu

So installieren und konfigurieren Sie Odoo unter Ubuntu Linux