78 Dokumentationen verfügbar

Wissensdatenbank

PostgreSQL Installation Grundlagen

Zuletzt aktualisiert: 11.01.2026 um 11:52 Uhr

PostgreSQL Installation & Grundlagen

PostgreSQL ist eine leistungsstarke, objektrelationale Open-Source-Datenbank. Sie wird oft für komplexe Anwendungen, GIS-Daten und als MySQL-Alternative eingesetzt.

Installation

# Ubuntu/Debian
sudo apt update
sudo apt install postgresql postgresql-contrib -y

# Status prüfen
sudo systemctl status postgresql

# Version prüfen
psql --version

Erster Zugriff

# Als postgres-Benutzer anmelden
sudo -u postgres psql

# In der PostgreSQL-Shell:
postgres=# \conninfo
postgres=# \q

Benutzer und Datenbank erstellen

sudo -u postgres psql
-- Benutzer erstellen
CREATE USER meinuser WITH PASSWORD 'sicheres_passwort';

-- Datenbank erstellen
CREATE DATABASE meine_db OWNER meinuser;

-- Alle Rechte vergeben
GRANT ALL PRIVILEGES ON DATABASE meine_db TO meinuser;

-- Benutzer auflisten
\du

-- Datenbanken auflisten
\l

\q

Oder via Kommandozeile

sudo -u postgres createuser --interactive meinuser
sudo -u postgres createdb -O meinuser meine_db

Verbindung testen

# Als Benutzer verbinden
psql -U meinuser -d meine_db -h localhost

# Oder
PGPASSWORD=sicheres_passwort psql -U meinuser -d meine_db -h localhost

Wichtige psql-Befehle

Befehl Beschreibung
\l Datenbanken auflisten
\c dbname Zu Datenbank wechseln
\dt Tabellen anzeigen
\d tablename Tabellenschema anzeigen
\du Benutzer anzeigen
\q Beenden
\? Hilfe

Remote-Zugriff erlauben

sudo nano /etc/postgresql/16/main/postgresql.conf
# Ändern:
listen_addresses = '*'
sudo nano /etc/postgresql/16/main/pg_hba.conf
# Am Ende hinzufügen (für bestimmtes Subnetz):
host    all    all    192.168.1.0/24    scram-sha-256

# Oder für alle (Vorsicht!):
host    all    all    0.0.0.0/0    scram-sha-256
sudo systemctl restart postgresql
sudo ufw allow 5432/tcp

Backup und Restore

# Einzelne Datenbank sichern
pg_dump -U meinuser -d meine_db > backup.sql

# Mit Komprimierung
pg_dump -U meinuser -d meine_db | gzip > backup.sql.gz

# Alle Datenbanken
pg_dumpall -U postgres > all_databases.sql

# Wiederherstellen
psql -U meinuser -d meine_db < backup.sql

# Komprimiert
gunzip -c backup.sql.gz | psql -U meinuser -d meine_db

Performance-Tuning

sudo nano /etc/postgresql/16/main/postgresql.conf
# Für Server mit 4GB RAM:
shared_buffers = 1GB
effective_cache_size = 3GB
maintenance_work_mem = 256MB
work_mem = 64MB
max_connections = 100

PHP mit PostgreSQL

sudo apt install php-pgsql -y
sudo systemctl restart php8.3-fpm
<?php
$conn = pg_connect("host=localhost dbname=meine_db user=meinuser password=sicheres_passwort");

if (!$conn) {
    die("Verbindung fehlgeschlagen");
}

$result = pg_query($conn, "SELECT * FROM users");
while ($row = pg_fetch_assoc($result)) {
    print_r($row);
}

pg_close($conn);
?>

PostgreSQL vs. MySQL

Aspekt PostgreSQL MySQL
SQL-Standard Strenger Flexibler
Komplexe Queries Besser Gut
JSON-Support Sehr gut Gut
Verbreitung Wachsend Höher

Weitere Hilfe