PostgreSQL-Installation: Eine umfassende Schritt-für-Schritt-Anleitung

Installieren Sie PostgreSQL unter Linux, macOS oder Windows, erstellen Sie dann einen Benutzer, überprüfen Sie den Zugriff und konfigurieren Sie sichere Netzwerkverbindungen.

PostgreSQL-Installation: Eine umfassende Schritt-für-Schritt-Anleitung

Die Installation von PostgreSQL ist in der Regel unkompliziert, aber die Details unterscheiden sich zwischen Linux, macOS und Windows. Das Ziel ist nicht nur, den Dienst zum Laufen zu bringen; Sie benötigen auch einen nutzbaren Datenbankbenutzer, eine saubere Verbindungsmöglichkeit und sichere Standardeinstellungen für den Netzwerkzugriff.

Verwenden Sie diese Anleitung, um PostgreSQL für die Entwicklung oder eine kleine Serverumgebung zu installieren, und passen Sie dann die Pfade und Versionsnummern an die aktuellen Pakete Ihres Betriebssystems an.

Voraussetzungen

Bevor Sie mit dem Installationsprozess beginnen, stellen Sie sicher, dass Ihr System diese grundlegenden Anforderungen erfüllt:

  • Administrative Berechtigungen: Sie benötigen sudo-Berechtigungen unter Linux/macOS oder Administratorrechte unter Windows, um Software zu installieren und Systemdienste zu konfigurieren.
  • Internetverbindung: Erforderlich zum Herunterladen der Installationspakete.
  • Ausreichend Speicherplatz: Während die anfängliche Installation relativ klein ist, wird Ihre Datenbank wachsen. Stellen Sie sicher, dass Sie ausreichend Speicherplatz für Ihre Daten haben.

Installation unter Linux

Linux-Distributionen bieten PostgreSQL in der Regel über ihre Standard-Paketquellen an, was die Installation unkompliziert macht.

Debian/Ubuntu

Für Debian-basierte Systeme wie Ubuntu können Sie PostgreSQL mit apt installieren.

  1. Paketlisten aktualisieren: Aktualisieren Sie immer zuerst die Listen Ihres Paketmanagers, um sicherzustellen, dass Sie die neuesten verfügbaren Pakete erhalten.

    sudo apt update
    
  2. PostgreSQL installieren: Installieren Sie das Paket postgresql, das oft den Server, Client-Dienstprogramme und die Dokumentation enthält. Sie können eine Version angeben (z.B. postgresql-16) oder die Standardversion installieren, indem Sie einfach postgresql verwenden.

    sudo apt install postgresql postgresql-contrib
    

    Das Paket postgresql-contrib bietet zusätzliche Dienstprogramme und Funktionen.

    Hinweis: Unter Debian/Ubuntu startet der PostgreSQL-Dienst normalerweise automatisch nach der Installation, und es wird ein Standardbenutzer postgres (sowohl System- als auch Datenbankbenutzer) erstellt.

  3. Installation überprüfen: Überprüfen Sie den Dienststatus.

    sudo systemctl status postgresql
    

    Sie sollten eine Ausgabe sehen, die darauf hinweist, dass er active (exited) oder active (running) ist. exited ist normal für die Hauptdiensteinheit, wenn sie mehrere Cluster verwaltet, die als separate Prozesse laufen.

RHEL/CentOS/Fedora

Für Red Hat-basierte Systeme verwenden Sie dnf (oder yum für ältere CentOS/RHEL-Versionen).

  1. PostgreSQL-Repository installieren: PostgreSQL bietet ein eigenes Repository für neuere Versionen an, als möglicherweise in den Standard-OS-Repositories verfügbar sind. Es wird empfohlen, dies für die neuesten stabilen Versionen zu verwenden.

    sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    # Für EL-9 verwenden Sie: sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    # Ersetzen Sie EL-8-x86_64 bei Bedarf durch Ihre spezifische OS-Version und Architektur.
    
  2. Standard-PostgreSQL-Modul deaktivieren (falls zutreffend): Einige RHEL/CentOS-Versionen haben ein Standard-PostgreSQL-Modul. Deaktivieren Sie es, um Konflikte mit dem PGDG-Repository zu vermeiden.

    sudo dnf -qy module disable postgresql
    
  3. PostgreSQL installieren: Installieren Sie die Server- und Contrib-Pakete. Ersetzen Sie 16 durch Ihre gewünschte Version.

    sudo dnf install -y postgresql16-server postgresql16-contrib
    
  4. Datenbank-Cluster initialisieren: Im Gegensatz zu Debian/Ubuntu müssen Sie bei RHEL-basierten Systemen oft den Datenbank-Cluster manuell initialisieren.

    sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
    

    Passen Sie den Pfad /usr/pgsql-16/bin und postgresql-16-setup entsprechend Ihrer installierten Version an.

  5. PostgreSQL-Dienst starten und aktivieren: Starten Sie den Dienst und konfigurieren Sie ihn so, dass er beim Booten startet.

    sudo systemctl enable postgresql-16
    sudo systemctl start postgresql-16
    
  6. Installation überprüfen: Überprüfen Sie den Dienststatus.

    sudo systemctl status postgresql-16
    

Installation unter macOS

Unter macOS ist Homebrew die empfohlene und einfachste Methode, um PostgreSQL zu installieren.

  1. Homebrew installieren (falls noch nicht geschehen):

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    

    Befolgen Sie die Anweisungen auf dem Bildschirm, einschließlich des Hinzufügens von Homebrew zu Ihrem PATH.

  2. PostgreSQL installieren: Verwenden Sie Homebrew, um PostgreSQL zu installieren. Sie können eine Version angeben (z.B. postgresql@16) oder die neueste stabile Version standardmäßig installieren.

    brew install postgresql
    
  3. PostgreSQL-Dienst starten: Homebrew installiert PostgreSQL als Hintergrunddienst.

    brew services start postgresql
    

    Zum Stoppen: brew services stop postgresql Zum Neustarten: brew services restart postgresql

  4. Installation überprüfen: Überprüfen Sie, ob psql verfügbar ist und eine Verbindung hergestellt werden kann.

    psql -V
    

    Um eine Verbindung zur Standarddatenbank herzustellen:

    psql postgres
    

    Tipp: Für eine visuelle, app-basierte Erfahrung ziehen Sie Postgres.app in Betracht, das eine unkomplizierte Möglichkeit bietet, PostgreSQL ohne Befehlszeile auszuführen und zu verwalten.

Installation unter Windows

Für Windows ist der grafische Installer von EnterpriseDB (EDB) die gebräuchlichste Methode für eine lokale PostgreSQL-Einrichtung.

  1. Installationsprogramm herunterladen: Besuchen Sie die offizielle PostgreSQL-Downloadseite (www.postgresql.org/download/windows/) und laden Sie den neuesten EDB-Installer für Ihre Windows-Version herunter.

  2. Installationsprogramm ausführen: Führen Sie die heruntergeladene .exe-Datei aus. Der Installationsassistent führt Sie durch den Prozess.

    • Installationsverzeichnis: Wählen Sie, wo PostgreSQL installiert werden soll (z.B. C:\Program Files\PostgreSQL\16).
    • Datenverzeichnis: Wählen Sie einen Speicherort für Ihre Datenbankdateien (z.B. C:\Program Files\PostgreSQL\16\data). Dies ist entscheidend und sollte idealerweise auf einer schnellen, zuverlässigen Festplatte liegen.
    • Passwort für postgres-Superuser: Legen Sie ein starkes Passwort für den Standard-Datenbank-Superuser postgres fest. Merken Sie sich dieses Passwort, da Sie es für die erste Verbindung benötigen.
    • Port: Der Standard-PostgreSQL-Port ist 5432. Es ist im Allgemeinen sicher, dies als Standard zu belassen, es sei denn, Sie haben Konflikte.
    • Gebietsschema: Wählen Sie das Standard-Gebietsschema für Ihren Datenbank-Cluster.
  3. Stack Builder: Nach der Installation startet der EDB-Installer möglicherweise Stack Builder. Dieses Tool hilft bei der Installation zusätzlicher Treiber, Tools und Erweiterungen (wie pgAdmin 4). Es wird dringend empfohlen, pgAdmin 4 für eine grafische Oberfläche zur Verwaltung Ihrer Datenbanken zu installieren.

  4. Installation überprüfen: Nach der Installation können Sie pgAdmin 4 öffnen (normalerweise im Startmenü unter "PostgreSQL 16" oder ähnlich zu finden) und versuchen, eine Verbindung zu Ihrem lokalen Server herzustellen, indem Sie den Superuser postgres und das von Ihnen festgelegte Passwort verwenden.

Ersteinrichtung & Schritte nach der Installation

Sobald PostgreSQL installiert ist, sind diese Schritte für eine funktionale und sichere Einrichtung unerlässlich.

1. Umgebungsvariable PATH setzen (Optional, hauptsächlich für Windows/macOS, wenn psql nicht gefunden wird)

Um psql und andere PostgreSQL-Binärdateien einfach von jedem Terminal-Standort aus ausführen zu können, fügen Sie das bin-Verzeichnis von PostgreSQL zum PATH Ihres Systems hinzu.

  • Linux: Wird oft vom Paketmanager erledigt, falls nicht, fügen Sie /usr/pgsql-X.Y/bin (RHEL) oder /usr/lib/postgresql/X.Y/bin (Debian/Ubuntu) zu Ihrem PATH hinzu.
  • macOS (Homebrew): brew erledigt dies automatisch.
  • Windows: Während der EDB-Installation gibt es eine Option, zum PATH hinzuzufügen. Falls nicht ausgewählt, können Sie C:\Program Files\PostgreSQL\16\bin (Version anpassen) manuell über Systemeigenschaften > Umgebungsvariablen hinzufügen.

2. Zugriff auf das psql-Terminal

psql ist die Befehlszeilenschnittstelle für PostgreSQL, die für die Verwaltung und Abfragen unerlässlich ist.

  • Linux/macOS: Wechseln Sie zum Systembenutzer postgres (während der Installation erstellt).

    sudo -i -u postgres
    psql
    

    Sie sind jetzt mit der Datenbank postgres als Benutzer postgres verbunden. Geben Sie \q ein, um zu beenden.

  • Windows: Öffnen Sie SQL Shell (psql) aus dem Startmenü (PostgreSQL 16 > SQL Shell (psql)). Es wird nach Serverdetails und dem Passwort des Benutzers postgres fragen.

3. Neuen Datenbankbenutzer und neue Datenbank erstellen

Es ist bewährte Praxis, den Superuser postgres nicht für den alltäglichen Anwendungsgebrauch zu verwenden. Erstellen Sie einen neuen dedizierten Benutzer und eine neue Datenbank.

  1. Als Superuser postgres anmelden (wie oben gezeigt).

  2. Neuen Benutzer (Rolle) erstellen:

    CREATE USER myuser WITH PASSWORD 'strong_password';
    

    Tipp: Ersetzen Sie myuser und strong_password durch sichere Anmeldeinformationen.

  3. Neue Datenbank erstellen und Besitzer zuweisen:

    CREATE DATABASE mydatabase OWNER myuser;
    
  4. Berechtigungen erteilen (falls erforderlich, oder CREATE DATABASE-Besitzer erledigt dies für grundlegende Operationen):

    GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;
    
  5. psql beenden:

    \q
    

4. pg_hba.conf für Netzwerkzugriff konfigurieren

Die Datei pg_hba.conf steuert die Client-Authentifizierung. Standardmäßig erlaubt PostgreSQL möglicherweise nur Verbindungen von localhost (127.0.0.1).

  • Speicherort: Diese Datei befindet sich normalerweise im PostgreSQL-Datenverzeichnis (z.B. /var/lib/postgresql/16/main/pg_hba.conf unter Debian/Ubuntu, /var/lib/pgsql/16/data/pg_hba.conf unter RHEL oder C:\Program Files\PostgreSQL\16\data\pg_hba.conf unter Windows).

  • Datei bearbeiten (als root/Administrator):

    sudo nano /etc/postgresql/16/main/pg_hba.conf
    

    (Passen Sie den Pfad für Ihr Betriebssystem und Ihre Version an).

    Um myuser die Verbindung von einem vertrauenswürdigen Subnetz mit Passwortauthentifizierung zu erlauben, fügen Sie eine Zeile wie diese hinzu:

    # TYPE DATABASE  USER            ADDRESS                 METHOD
    host  mydatabase  myuser          192.168.1.0/24          scram-sha-256
    

    scram-sha-256 ist die bevorzugte Passwortmethode für moderne PostgreSQL-Bereitstellungen. Vermeiden Sie 0.0.0.0/0, es sei denn, der Server ist auch durch strenge Firewall-Regeln geschützt und Sie benötigen wirklich breiten Zugriff.

  • PostgreSQL neu laden: Nach der Änderung von pg_hba.conf müssen Sie den PostgreSQL-Dienst neu laden, damit die Änderungen wirksam werden.

    sudo systemctl reload postgresql # Linux
    # Für Homebrew unter macOS:
    # brew services restart postgresql
    # Für Windows starten Sie den PostgreSQL-Dienst über Services.msc neu
    

5. postgresql.conf konfigurieren (Netzwerk-Listening)

Standardmäßig hört PostgreSQL oft nur auf localhost. Um Verbindungen von anderen Rechnern zu akzeptieren, müssen Sie postgresql.conf ändern.

  • Speicherort: Diese Datei befindet sich normalerweise im selben Verzeichnis wie pg_hba.conf.

  • Datei bearbeiten:

    sudo nano /etc/postgresql/16/main/postgresql.conf
    

    Suchen Sie den Parameter listen_addresses und ändern Sie ihn nur, wenn Remote-Clients eine Verbindung herstellen müssen:

    #listen_addresses = 'localhost' # welche IP-Adresse(n) abgehört werden sollen;
    listen_addresses = 'localhost,192.168.1.10'
    

    Verwenden Sie die tatsächliche private IP-Adresse des Servers anstelle von 192.168.1.10. listen_addresses = '*' funktioniert auch, sollte aber mit restriktiven pg_hba.conf- und Firewall-Regeln kombiniert werden.

  • PostgreSQL neu starten: Änderungen an postgresql.conf erfordern einen vollständigen Dienst-Neustart.

    sudo systemctl restart postgresql # Linux
    # brew services restart postgresql # macOS
    # Für Windows starten Sie den PostgreSQL-Dienst über Services.msc neu
    

Überprüfung Ihrer Installation

Führen Sie nach allen Konfigurationen eine abschließende Überprüfung durch:

  1. PostgreSQL-Dienststatus überprüfen (systemctl status postgresql oder brew services list oder Windows-Dienste).

  2. Als Ihr neuer Benutzer mit Ihrer neuen Datenbank verbinden:

    psql -h localhost -U myuser -d mydatabase
    

    Sie werden nach dem Passwort von myuser gefragt. Bei Erfolg sehen Sie die Eingabeaufforderung mydatabase=>. Geben Sie \q ein, um zu beenden.

    Wenn Sie von einem anderen Rechner aus eine Verbindung herstellen, ersetzen Sie localhost durch die IP-Adresse des Servers.

Tipps und bewährte Methoden

  • Starke Passwörter: Verwenden Sie immer starke, eindeutige Passwörter für alle Datenbankbenutzer, insbesondere für den Superuser postgres.
  • Dediziertes Datenverzeichnis: Erwägen Sie für die Produktion, das Datenverzeichnis auf einem dedizierten Volume oder RAID-Array zu platzieren, um Leistung und Zuverlässigkeit zu verbessern.
  • Regelmäßige Backups: Implementieren Sie von Anfang an eine robuste Backup-Strategie. Die PostgreSQL-Dienstprogramme pg_dump und pg_basebackup sind hervorragende Werkzeuge dafür.
  • Aktualisiert bleiben: Halten Sie Ihre PostgreSQL-Installation auf dem neuesten Stand, um von Fehlerbehebungen, Sicherheitspatches und neuen Funktionen zu profitieren. Verwenden Sie den Paketmanager Ihres Systems oder folgen Sie dem Update-Prozess des EDB-Installers.
  • Firewall-Konfiguration: Wenn Sie Remote-Verbindungen zulassen, stellen Sie sicher, dass die Firewall Ihres Systems (z.B. ufw, firewalld, Windows-Firewall) so konfiguriert ist, dass eingehenden Datenverkehr auf Port 5432 (oder Ihrem gewählten Port) zulässt.

Fazit

Sobald PostgreSQL installiert ist, überprüfen Sie den Dienst, verbinden Sie sich mit psql, erstellen Sie eine Anwendungsrolle und halten Sie den Remote-Zugriff eng. Für die Produktion sollten Ihre nächsten Schritte Backups und Überwachung sein, bevor die Datenbank beginnt, wichtige Daten zu speichern.