PostgreSQL ist eines der beliebtesten, plattformübergreifenden, objektrelationalen Open-Source-Datenbanksysteme, das robust, leistungsstark und zuverlässig mit einer starken Community ist.

Es stammt aus dem Jahr 1986 als Teil der POSTGRES Projekt an der University of California, Berkeley, und trägt 30 Jahre aktiver Entwicklung auf seiner Kernplattform. Seine konstante Leistung über die Jahre hat seine Integrität, Architektur und Erweiterbarkeit für den Einsatz in Unternehmen bewiesen. Es ist ACID-kompatibel und bietet Unterstützung für leistungsstarke Add-Ons wie den beliebten PostGIS Geospatial Database Extender.

In diesem Artikel behandeln wir die Installation von PostgreSQL auf gängigen Plattformen.

Also lasst uns anfangen.

Ubuntu

PostgreSQL ist für alle Varianten und Versionen von Ubuntu verfügbar. Sie haben die Wahl, die standardmäßig mit Ihrer Ubuntu-Version verfügbare und für die gesamte Lebensdauer unterstützte Version zu installieren und zu verwenden oder eine bestimmte Version zu verwenden, indem Sie das PostgreSQL-Repository hinzufügen und installieren. Wir werden hier beide Optionen behandeln.

Um die vom Ubuntu-Repository bereitgestellte standardmäßig unterstützte Version zu verwenden, führen Sie Folgendes aus:

$ sudo apt-get update
$ sudo apt-get -y install postgresql

Das PostgreSQL Apt Repository unterstützt die aktuellen LTS-Versionen von Ubuntu, d. 20.04, 18.04 und 16.04. Obwohl es möglicherweise nicht vollständig unterstützt wird, funktionieren dieselben Pakete auch auf Nicht-LTS-Versionen, indem die nächstgelegene LTS-Version verwendet wird.

So verwenden Sie PostgreSQL-Apt-Repository, folge diesen Schritten:

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get -y install postgresql

Um eine bestimmte Version aus dem PostgreSQL-Repository zu installieren, anstatt nur postgresql was sich auf die neueste Version bezieht, spezifizieren Sie es wie postgresql-12:

$ sudo apt-get -y install postgresql-12

Das Repository enthält auch verschiedene Pakete, einschließlich Add-Ons von Drittanbietern. Zu den allgemein verfügbaren Paketen für Version 12 von PostgreSQL gehören beispielsweise:

postgresql-client-12 Clientbibliotheken und Clientbinärdateien
postgresql-12 Kerndatenbankserver
postgresql-contrib-9.x zusätzlich mitgelieferte Module (Bestandteil des postgresql-xx Pakets ab Version 10)
libpq-dev Bibliotheken und Header für die Frontend-Entwicklung in C-Sprache
postgresql-server-dev-12 Bibliotheken und Header für die Backend-Entwicklung in C-Sprache
pgadmin4 pgAdmin 4 grafisches Verwaltungsprogramm

Nach Abschluss der Installation können Sie den Status des DB-Dienstes mit dem folgenden Befehl überprüfen:

$ sudo systemctl status postgresql.service

Für Ubuntu sollte der Dienst nach der Installation aktiviert sein und wie folgt ausgeführt werden:

$ sudo systemctl status postgresql.service
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sun 2021-06-06 16:06:45 UTC; 46s ago
   Main PID: 3364 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 1113)
     Memory: 0B
     CGroup: /system.slice/postgresql.service

Jun 06 16:06:45 ubuntu20cloud systemd[1]: Starting PostgreSQL RDBMS...
Jun 06 16:06:45 ubuntu20cloud systemd[1]: Finished PostgreSQL RDBMS.
$

CentOS

Wie Ubuntu enthalten auch RHEL/CentOS-Repositorys eine bestimmte Version von PostgreSQL, die während der gesamten Lebensdauer des Betriebssystems unterstützt wird. Sie können das gleiche installieren mit:

$ sudo yum install -y postgresql-server

oder du kannst es benutzen DNF bei Verwendung von CentOS 8.

$ sudo dnf install -y postgresql-server

Führen Sie nach der Installation die folgenden Befehle aus, um die DB zu initialisieren, den PostgreSQL-Dienst zu aktivieren und zu starten:

$ sudo postgresql-setup initdb
$ sudo systemctl enable postgresql.service
$ sudo systemctl start postgresql.service

Oder nutzen Sie die Pakete direkt von PostgreSQL-Yum-Repositorys, müssen wir das Repository hinzufügen als:

$ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Um dann eine bestimmte Version von PostgreSQL wie Version 13 zu installieren, die zum Zeitpunkt des Schreibens dieses Artikels die neueste stabile Version ist, verwenden Sie:

$ sudo yum install -y postgresql13-server

Das yum-Repository enthält auch zusätzliche Pakete für PostgreSQL, von denen einige der wichtigsten unten aufgeführt sind:

postgresql-client Bibliotheken und Client-Binärdateien
Postgresql-Server Kerndatenbankserver
postgresql-Beitrag zusätzlich mitgelieferte Module
postgresql-devel Bibliotheken und Header für die C-Sprachentwicklung

Führen Sie nach der Installation die folgenden Schritte aus, um die DB zu initialisieren, den PostgreSQL-Dienst zu aktivieren und zu starten:

$ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
$ sudo systemctl enable postgresql-13
$ sudo systemctl start postgresql-13

Sie können den Status des DB-Dienstes mit dem folgenden Befehl überprüfen:

$ sudo systemctl status postgresql.service
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2021-06-06 16:39:35 GMT; 1min 12s ago
  Process: 7011 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS)
  Process: 7005 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/postgresql.service
           ├─7014 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
           ├─7015 postgres: logger process
           ├─7017 postgres: checkpointer process
           ├─7018 postgres: writer process
           ├─7019 postgres: wal writer process
           ├─7020 postgres: autovacuum launcher process
           └─7021 postgres: stats collector process

Jun 06 16:39:34 centos7cloud systemd[1]: Starting PostgreSQL database server...
Jun 06 16:39:35 centos7cloud systemd[1]: Started PostgreSQL database server.
$

Windows

32-Bit- und 64-Bit-Installationsprogramme für Windows sind auf der offiziellen PostgreSQL-Site verfügbar hier.

  • Sie können die entsprechende Binärdatei basierend auf der erforderlichen Version und Architektur herunterladen.

postgresql herunterladen

  • Wir werden die neueste verfügbare Version herunterladen, nämlich v13.3 für die Windows 64-Bit-Plattform. Sobald der Download abgeschlossen ist, starten Sie das Installationsprogramm, indem Sie darauf doppelklicken.

postgresql-install-launch

  • Klicken Sie auf Weiter, um fortzufahren.

postgresql-install-location

  • Klicken Sie auf Weiter, um mit dem Standardpfad fortzufahren oder geben Sie Ihren benutzerdefinierten Installationspfad an.

  • Sie können die Standardkomponenten ausgewählt lassen und auf Weiter klicken, um fortzufahren.

postgresql-install-datadir

  • Als nächstes fragt es nach dem Speicherort des Datenverzeichnisses; dies kann als Standard beibehalten werden, es sei denn, Sie haben eine separate dedizierte Festplatte oder ein eigenes Verzeichnis zugewiesen. Klicken Sie auf Weiter, um fortzufahren.

postgresql-install-passwort

  • Geben Sie ein starkes Passwort an, das zugewiesen wird postgres Benutzer. Klicken Sie auf Weiter, wenn Sie fertig sind.

postgresql-install-port

  • Standardport 5432 sollte für die meisten fälle gut sein. Klicken Sie auf Weiter, um zur nächsten Seite zu gelangen.

postgresql-install-locale

  • Wählen Sie das Gebietsschema für die DB aus und klicken Sie auf Weiter, um fortzufahren.

postgresql-install-bestätigung

  • Alle ausgewählten Einstellungen für den Installationsassistenten werden aufgelistet, damit Sie sie überprüfen und bestätigen können. Wenn etwas geändert werden muss, gehen Sie zurück und ändern Sie dasselbe oder klicken Sie auf Weiter, um zur nächsten Seite zu gelangen.

postgresql-install-confirmation-1

  • Das Setup zeigt an, dass es bereit ist, mit der Installation fortzufahren. Wenn Sie fertig sind, klicken Sie auf Weiter, um die Installation zu starten.

postgresql-Installationsfortschritt

  • Warten Sie, bis die Installation abgeschlossen ist. Dafür wird eine Bestätigung angezeigt.

postgresql-install-abgeschlossen

  • Sobald Sie fertig sind, können Sie das Häkchen entfernen Stack Builder und klicken Sie auf Fertig stellen, um den Installationsassistenten zu beenden. Klicken Sie auf das Startmenü und suchen Sie nach SQL Shell (psql) und klicken Sie auf das Symbol, um die psql Schale.

psql-startmenü

  • SQL Shell (psql) opens up where you can interact with your <a href="https://geekflare.com/postgresql-monitoring-tools/">PostgreSQL instance after specifying the connection details</a>. All of the items can be selected as the default by simply pressing <code>Enter mit Ausnahme des Passworts, wo Sie das Passwort eingeben müssen für postgres Benutzer während des Installationsassistenten. Das wird dich landen postgres=# prompt.

psql-sql-shell-windows

Stellen Sie eine Verbindung zu PostgreSQL her

A postgres Der Benutzer wird nach der Installation automatisch erstellt, was superadmin Zugriff auf die DB-Instance. Unter Linux können Sie als privilegierter Benutzer zu diesem Konto wechseln als:

$ sudo su - postgres

Einmal drin, können wir zurücksetzen postgres Benutzerpasswort als:

$ psql -c "alter user postgres with password 'P@SsW0rdH3r3'"

Und dann starten Sie die PostgreSQL-Eingabeaufforderung mit psqlals:

$ psql

Dadurch gelangen Sie in die PostgreSQL-Eingabeaufforderung:

$ psql
psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1))
Type "help" for help.

postgres=#

An dieser Eingabeaufforderung können Sie mit der Datenbank interagieren und DB-Administrator- oder Benutzeraufgaben ausführen. Als Demo erstellen Sie in den folgenden Schritten eine DB und einen Benutzer und weisen Sie dem neuen Benutzer dann Berechtigungen zu, um an der neuen Datenbank zu arbeiten:

postgres=# CREATE DATABASE geekflaredb;
CREATE DATABASE
postgres=# CREATE USER geekuser WITH ENCRYPTED PASSWORD 'N3wP@33w0rD';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE geekflaredb to geekuser;
GRANT
postgres=#

Wir können dann die DBs auflisten mit \l Befehl:

postgres=# \l
                               List of databases
    Name     |  Owner   | Encoding | Collate |  Ctype  |   Access privileges
-------------+----------+----------+---------+---------+-----------------------
 geekflaredb | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =Tc/postgres         +
             |          |          |         |         | postgres=CTc/postgres+
             |          |          |         |         | geekuser=CTc/postgres
 postgres    | postgres | UTF8     | C.UTF-8 | C.UTF-8 |
 template0   | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
             |          |          |         |         | postgres=CTc/postgres
 template1   | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
             |          |          |         |         | postgres=CTc/postgres
(4 rows)

postgres=#

Jetzt können Sie einfach eine Verbindung zu einer DB herstellen, indem Sie:

postgres=# \c geekflaredb
You are now connected to database "geekflaredb" as user "postgres".
geekflaredb=#

Zusammenfassung

PostgreSQL ist eines der weit verbreiteten Datenbanken in der Unternehmenswelt aufgrund seiner Robustheit, seines Funktionsumfangs und seiner Skalierbarkeit. Es ist leicht zu erlernen und versucht, mit SQL-Standards kompatibel zu sein.

Es ist ein Lernprogramm für PostgreSQL auf seiner offiziellen Website verfügbar.