Table of Contents

PostgreSQL - Przewodnik na start

PostgreSQL to wydajna, otwartoźródłowa relacyjna baza danych znana z niezawodności, integralności danych oraz zaawansowanych funkcji, takich jak obsługa JSON, wyszukiwanie pełnotekstowe i możliwość rozszerzania. Ten serwer zawiera PostgreSQL 16 w pełni skonfigurowany z hasłem administratora podanym podczas składania zamówienia. Do zarządzania bazą danych dołączony jest również pgAdmin4 z interfejsem webowym.


Krok 1 – Sprawdź, czy PostgreSQL działa

Adres IP serwera oraz hasło użytkownika root znajdują się w sekcji Server Information na karcie Overview serwera w panelu klienta. pgAdmin4 to internetowe narzędzie do zarządzania PostgreSQL. Otwórz w przeglądarce adres http://your.server.ip/pgadmin4, aby sprawdzić, czy działa.

Logowanie do pgAdmin4:

  • Adres e-mail: adres podany podczas składania zamówienia
  • Hasło: hasło administratora podane podczas składania zamówienia

Superużytkownik PostgreSQL:

  • Nazwa użytkownika: postgres
  • Hasło: hasło administratora podane podczas składania zamówienia

Po zalogowaniu do pgAdmin4 dodaj połączenie z serwerem PostgreSQL:

  1. Kliknij prawym przyciskiem myszy Servers w lewym panelu i wybierz Register > Server.
  2. W zakładce General wpisz nazwę połączenia (np. „Local”).
  3. W zakładce Connection ustaw: Host = 127.0.0.1, Port = 5432, Username = postgres, Password = hasło administratora.
  4. Kliknij Save.

Od tej chwili możesz przeglądać bazy danych, wykonywać zapytania SQL, importować i eksportować dane oraz zarządzać użytkownikami z poziomu interfejsu webowego.

Serwery baz danych nie wymagają publicznego dostępu do Internetu. Dla większego bezpieczeństwa umieść serwer w sieci prywatnej za routerem VyOS i łącz się z PostgreSQL oraz pgAdmin4 przez VPN, używając prywatnego adresu IP serwera.


Krok 2 – Połącz się z PostgreSQL zdalnie

PostgreSQL jest skonfigurowany do przyjmowania połączeń zdalnych. Możesz połączyć się z dowolnej aplikacji lub narzędzia:

psql -h your.server.ip -U postgres

Parametry połączenia dla graficznych klientów baz danych (pgAdmin Desktop, DBeaver, DataGrip itp.):

Parametr Wartość
Hostyour.server.ip
Port5432
Nazwa użytkownikapostgres
HasłoHasło administratora podane podczas zamówienia

Uwaga: Port 5432 obsługuje protokół PostgreSQL, a nie HTTP, dlatego nie można otworzyć go w przeglądarce. Użyj klienta baz danych lub powyższego polecenia.


Krok 3 – Włącz SSL dla pgAdmin4 (opcjonalnie)

Jeżeli posiadasz domenę wskazującą na ten serwer, możesz włączyć HTTPS dla pgAdmin4 przy użyciu bezpłatnego certyfikatu Let’s Encrypt. Połącz się przez SSH i uruchom:

ssh root@your.server.ip /opt/setup/get-ssl.sh db.yourdomain.com

Skrypt sprawdzi poprawność konfiguracji DNS, pobierze certyfikat i automatycznie skonfiguruje Apache do obsługi HTTPS. Po zakończeniu pgAdmin4 będzie dostępny pod adresem https://db.yourdomain.com/pgadmin4.

Uwaga: Przed uruchomieniem skryptu upewnij się, że rekord A domeny wskazuje na adres IP serwera. SSL jest opcjonalny. pgAdmin4 działa również przez HTTP przy dostępie po adresie IP.


Zarządzanie bazą danych

Tworzenie dodatkowych baz danych

Nowe bazy danych możesz tworzyć z poziomu pgAdmin4 lub przez SSH:

sudo -u postgres psql CREATE USER newuser WITH PASSWORD 'strong_password’; CREATE DATABASE newdb OWNER newuser ENCODING 'UTF8′; GRANT ALL PRIVILEGES ON DATABASE newdb TO newuser;

Import i eksport danych

Przez pgAdmin4: kliknij prawym przyciskiem myszy wybraną bazę danych i wybierz Backup lub Restore. Obsługiwane są formaty custom, tar, plain oraz directory.

Z poziomu wiersza poleceń:

# Eksport pg_dump -U postgres your_database > backup.sql # Eksport (format custom, skompresowany) pg_dump -U postgres -Fc your_database > backup.dump # Import (SQL) psql -U postgres your_database < backup.sql # Import (format custom) pg_restore -U postgres -d your_database backup.dump

W przypadku dużych baz danych zalecane jest używanie formatu pg_dump -Fc, który zapewnia szybsze wykonywanie kopii zapasowych i mniejsze pliki.


Po instalacji

Fail2Ban – ochrona przed atakami brute-force

Na serwerze jest wstępnie skonfigurowany Fail2Ban, który chroni dostęp SSH przed atakami typu brute-force.

Reguła Maksymalna liczba prób Czas blokady
SSH5 nieudanych logowań10 minut

Przydatne polecenia:

# Sprawdź zablokowane adresy IP fail2ban-client status sshd # Odblokowanie adresu IP fail2ban-client set sshd unbanip 1.2.3.4

Jeśli przypadkowo zablokujesz sobie dostęp, połącz się z serwerem przez konsolę VNC w panelu klienta i odblokuj swój adres IP.

Zarządzanie usługami

PostgreSQL i Apache działają jako usługi systemd. Najczęściej używane polecenia:

# Sprawdź status usług systemctl status postgresql systemctl status apache2 # Uruchom ponownie PostgreSQL systemctl restart postgresql # Wyświetl logi PostgreSQL journalctl -u postgresql -n 100

Optymalizacja wydajności PostgreSQL

Podczas pierwszego uruchomienia PostgreSQL jest automatycznie dostrajany na podstawie dostępnej pamięci RAM. Aby sprawdzić aktualne ustawienia:

sudo -u postgres psql -c „SHOW shared_buffers; SHOW effective_cache_size; SHOW work_mem;”

Aby zmienić ustawienia ręcznie, edytuj plik /etc/postgresql/16/main/conf.d/99-tuning.conf, a następnie uruchom ponownie PostgreSQL:

systemctl restart postgresql

Dane dostępowe do serwera

Dane logowania do PostgreSQL oraz pgAdmin4 są zapisane w pliku /root/.pg_credentials.

Wstępna konfiguracja

  • Dostęp zdalny: PostgreSQL akceptuje połączenia z dowolnego adresu IP na porcie 5432 (uwierzytelnianie SCRAM-SHA-256)
  • shared_buffers: automatycznie ustawione na 25% dostępnej pamięci RAM podczas pierwszego uruchomienia
  • effective_cache_size: ustawione na 75% pamięci RAM dla optymalnego planowania zapytań
  • Kodowanie: nowe bazy danych są tworzone z kodowaniem UTF-8 (utf8, en_US.UTF-8)

Zainstalowane oprogramowanie

Komponent Wersja
Ubuntu24.04 LTS
PostgreSQL16 (PGDG APT)
Apache2.4
pgAdmin4Najnowsza (tryb webowy)
CertbotNajnowsza
Fail2Ban1.0

Rozwiązywanie problemów

Problem Rozwiązanie
Nie można połączyć się z PostgreSQL zdalnie Sprawdź, czy port 5432 nie jest blokowany przez zaporę. Zweryfikuj, czy listen_addresses = '*’ znajduje się w pliku conf.d/99-custom.conf oraz czy pg_hba.conf zezwala na połączenia z Twojego adresu IP.
pgAdmin4 wyświetla błąd logowania Użyj adresu e-mail oraz hasła administratora podanych podczas składania zamówienia. Dane logowania znajdują się w pliku /root/.pg_credentials.
Strona pgAdmin4 nie otwiera się (HTTP 500) Sprawdź status Apache: systemctl status apache2. Następnie sprawdź logi pgAdmin: /var/log/pgadmin/pgadmin4.log.
PostgreSQL nie uruchamia się Sprawdź logi: journalctl -u postgresql -n 50. Najczęstsze przyczyny to brak wolnego miejsca na dysku (df -h /) lub nieprawidłowa konfiguracja (pg_lsclusters).
Zapomniane hasło administratora PostgreSQL Połącz się przez SSH i sprawdź plik /root/.pg_credentials.
Adres IP został zablokowany przez Fail2Ban Połącz się z serwerem przez konsolę VNC w panelu klienta i odblokuj swój adres IP.
Zapomniane hasło użytkownika root Użyj konsoli VNC w panelu klienta, aby zresetować hasło.