PostgreSQL to niezawodna baza relacyjna dla aplikacji WWW, analityki i mieszanych obciążeń. Poniżej instalacja na Ubuntu/Debian, utworzenie bazy i podstawy bezpieczeństwa.
Wymagania
- Ubuntu 20.04+ lub Debian 11+ z
sudo - Co najmniej 1 GB RAM (przy cięższym obciążeniu 2 GB+)
Instalacja
1. Aktualizacja i pakiet serwera
Bashsudo apt update && sudo apt upgrade -y sudo apt install -y postgresql postgresql-contrib
2. Usługa
Bashsudo systemctl status postgresql sudo systemctl enable postgresql
Domyślnie PostgreSQL nasłuchuje na localhost (127.0.0.1) — wygodne, gdy aplikacja jest na tym samym VPS.
Użytkownik aplikacji i baza
Przełącz się na użytkownika systemowego postgres i uruchom psql:
Bashsudo -u postgres psql
W psql (dostosuj nazwy i hasło):
SQLCREATE USER myapp WITH PASSWORD 'strong_password_here'; CREATE DATABASE myapp_db OWNER myapp; GRANT ALL PRIVILEGES ON DATABASE myapp_db TO myapp; \q
Test połączenia:
Bashpsql -h 127.0.0.1 -U myapp -d myapp_db
Typowy connection string
TEXTpostgresql://myapp:[email protected]:5432/myapp_db
Bezpieczeństwo
- Silne hasło roli aplikacji.
- Unikaj wystawiania PostgreSQL do Internetu, jeśli nie jest to konieczne. Jeśli musisz: ścisły firewall,
listen_addresses,pg_hba.conf, najlepiej VPN lub tunel. - Łącz z UFW i Fail2ban dla publicznych usług.
Dostęp zdalny (unikaj, o ile nie potrzebujesz)
W postgresql.conf (ścieżka zwykle /etc/postgresql/*/main/):
Configlisten_addresses = '*'
W pg_hba.conf dodaj restrykcyjną regułę (przykład: jedno zaufane IP):
TEXThost myapp_db myapp 203.0.113.50/32 scram-sha-256
Potem:
Bashsudo systemctl restart postgresql
Kopie zapasowe
Zrzut logiczny:
Bashsudo -u postgres pg_dump myapp_db > backup_myapp.sql
Przywrócenie:
Bashsudo -u postgres psql myapp_db < backup_myapp.sql
Planuj kopie (cron) na zewnętrzny storage.
Rozwiązywanie problemów
- Peer authentication failed: użyj
-h 127.0.0.1dla TCP lub dostosujpg_hba.conf. - Connection refused: status usługi i port (
5432domyślnie).