PostgreSQL einrichten

Hinweis: ** steht für Version, z.B. 12. Das Paket postgresql-client-** ist in Devuan bereits enthalten. Nach Systemstart ist der Postgres-Dienst automatisch aktiviert und kann über die psql-Kommandos (siehe Administration mit psql) angesprochen werden.

Für den Einsatz im Netzwerk muss zusätzlich das Paket postgresql-** installiert werden. PostgreSQL akzeptiert normal keine Verbindungen von anderen Computern. Um PostgreSQL über das Netzwerk zu erreichen, muss in der Datei /etc/postgresql/nr*/main/postgresql.conf des Servers das "Listen" auf allen Netzwerkkarten erlaubt werden. Dazu die Datei (über Thunar als root) als Admin öffnen und die Zeile:
#listen-adresses='localhost' ändern, sie muss so aussehen: listen-adresses='*' - ohne # Kommentarzeichen.


Erstanmeldung im Terminal

gottfried@devuan:~$ su
Passwort:
root@devuan:~# su postgres
postgres@devuan:~$
postgres@devuan:~$ psql postgres
Welcome to psql 13.5-0, the PostgreSQL interactive terminal.
Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit
postgres=# 

 

Wir benutzen einmalig zum Anlegen der/des Datenbanknutzer/s und Erstellen der Datenbank/en den Superuser postgres, weil sich das Schaffen eines Postres-User mit den entsprechenden Rechten für diese einmalig anfallenden Aufgaben nicht lohnt.

Dazu werden wir mit su zunächst root und dann mit su postgres zum PostgreSQL-Administrator. Mit psql postgres starten wir dann die Administration und erhalten die postgres=# Eingabeaufforderung.

 

Anlegen von Nutzer und Datenbank

postgres=# CREATE USER gottfried PASSWORD 'meinpw' CREATEDB;
CREATE ROLE
postgres=# CREATE DATABASE handwerk WITH OWNER gottfried ENCODING 'UTF8';
CREATE DATABASE
postgres=# 

 

Beim Erstellen eines Datenbanknutzers mit CREATE USER muss neben dem Namen ein Passwort angegeben werden. Mit CREATEDB erhält dieser Nutzer das Recht Datenbanken zu erstellen.

Es folgt CREATE DATABASE zum Anlegen einer Datenbank. Nach dem Namen der Datenbank folgt WITH OWNER, um den Besitzer der Datenbank und ENCODING 'UTF8' um die Zeichencodierung festzulegen.


Tabellen und Beziehungen

Tabellen und Beziehungen

 

Tabellen mit Relation erstellen

 

In PostgreSQL sind Datenbanken relational. Links sehen wir, dass die Tab.Spalte kunden.knr eine 1:n Beziehung zu Tab.Spalte vorgang.knr hat und vorgang.vid eine 1:n Beziehung zu leistungen.vid. In der Mitte sind CREATE TABLE Befehle abgebildet, bei denen unten in Tab. vorgang mit
FOREIGN KEY (knr) REFERENCES kunden (knr) die 1:n Relation von kunden.knr zu vorgang.knr hergestellt wird.

 


Administration mit psql

Administration mit psql

 

Für PostgreSQL Datenbanken gibt es das so genannte Managment-Tool pgAdmin. Man müsste es installieren und seine Nutzung erlernen, doch das können wir uns sparen. Die Administration mit psql im Terminal ist nicht schwer und SQL Befehle, die man selten braucht, kann man nachschlagen.

In der hier verlinkten PDF-Anleitung zu PostgreSQL sind sehr viele gängige und einige spezielle SQL-Befehle beschrieben. Von der PostgreSQL Einrichtung über das Erstellen und Ändern von Tabellen bis zur Datenbank-Sicherung mit pg_dump und einiges mehr. Hier gehts zur ⇒⇒ PDF.