Table of Contents

PostgreSQL - príručka pre začiatočníkov

PostgreSQL je výkonná open-source relačná databáza známa spoľahlivosťou, integritou dát a pokročilými funkciami, ako je podpora JSON, fulltextové vyhľadávanie a rozšíriteľnosť. Server obsahuje plne nakonfigurovaný PostgreSQL 16 s heslom administrátora, ktoré ste zadali pri objednávke. Na správu databáz cez web je k dispozícii pgAdmin4.


Krok 1 – Overte, že PostgreSQL funguje

IP adresa a heslo root vášho servera sú uvedené na stránke Server Details v klientskom paneli. pgAdmin4 je webový nástroj na správu PostgreSQL. Otvorte http://your.server.ip/pgadmin4 v prehliadači a overte, že funguje.

Prihlásenie do pgAdmin4:

  • E-mail: e-mail, ktorý ste zadali pri objednávke
  • Heslo: heslo administrátora, ktoré ste zadali pri objednávke

Superpoužívateľ PostgreSQL:

  • Používateľské meno: postgres
  • Heslo: heslo administrátora, ktoré ste zadali pri objednávke

Prihláste sa do pgAdmin4 a pridajte pripojenie k serveru PostgreSQL:

  1. Kliknite pravým tlačidlom na Servers v ľavom paneli a zvoľte Register > Server
  2. General karta: zadajte názov (napr. „Local“)
  3. Connection karta: Host = 127.0.0.1, Port = 5432, Username = postgres, Password = vaše Admin Password
  4. Kliknite na Uložiť

Teraz môžete prechádzať databázy, spúšťať SQL dopyty, importovať/exportovať dáta a spravovať používateľov cez webové rozhranie.

Databázové servery nepotrebujú verejný prístup z internetu. Na bezpečný prístup umiestnite server do privátnej siete za router VyOS a k PostgreSQL a pgAdmin4 sa pripájajte cez VPN na privátnu IP servera.


Krok 2 – Vzdialené pripojenie k PostgreSQL

PostgreSQL je nakonfigurovaný na prijímanie vzdialených pripojení. Pripojiť sa môžete z ľubovoľnej aplikácie alebo nástroja:

psql -h your.server.ip -U postgres

Údaje na pripojenie z grafických databázových nástrojov (pgAdmin Desktop, DBeaver, DataGrip atď.):

Parameter Hodnota
Hostiteľyour.server.ip
Port5432
Používateľské menopostgres
HesloAdmin Password z objednávky

Poznámka: Port 5432 je protokol PostgreSQL, nie HTTP – v prehliadači ho otvoriť nemožno. Použite databázového klienta alebo príkaz vyššie.


Krok 3 – Zapnutie SSL pre pgAdmin4 (voliteľné)

Ak na tento server smeruje vaša doména, môžete pre pgAdmin4 zapnúť HTTPS s bezplatným certifikátom Let’s Encrypt. Pripojte sa cez SSH a spustite:

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

Skript overí DNS, získa certifikát a automaticky nastaví Apache pre HTTPS. Po dokončení je pgAdmin4 dostupný na https://db.yourdomain.com/pgadmin4.

Poznámka: Pred spustením skriptu sa uistite, že A záznam vašej domény smeruje na IP servera. SSL je voliteľné – pgAdmin4 funguje bez problémov cez HTTP s prístupom cez IP adresu.


Správa databáz

Vytváranie ďalších databáz

Ďalšie databázy môžete vytvoriť cez pgAdmin4 alebo 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 a export

Cez pgAdmin4: Kliknite pravým tlačidlom na databázu a zvoľte Backup alebo Restore. Podporuje formáty custom, tar, plain a directory.

Cez príkazový riadok:

# Export
pg_dump -U postgres your_database > backup.sql

# Export (custom format, compressed)
pg_dump -U postgres -Fc your_database > backup.dump

# Import (SQL)
psql -U postgres your_database < backup.sql

# Import (custom format)
pg_restore -U postgres -d your_database backup.dump

Pri veľkých databázach použite pg_dump -Fc (formát custom) na rýchlejšie a menšie zálohy.


Po inštalácii

Fail2Ban – ochrana proti útokom hrubou silou

Váš server obsahuje Fail2Ban predkonfigurovaný na ochranu SSH proti útokom hrubou silou.

Pravidlo Max. počet pokusov Doba blokovania
SSH5 neúspešných prihlásení10 minút

Užitočné príkazy:

# Check banned IPs
fail2ban-client status sshd

# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4

Ak sa omylom zablokujete, pripojte sa cez konzolu VNC v klientskom paneli a odblokujte svoju IP.

Správa služieb

PostgreSQL a Apache bežia cez systemd. Bežné príkazy:

# Check service status
systemctl status postgresql
systemctl status apache2

# Restart PostgreSQL
systemctl restart postgresql

# View PostgreSQL logs
journalctl -u postgresql -n 100

Ladenie výkonu PostgreSQL

PostgreSQL sa pri prvom štarte automaticky vyladí podľa dostupnej RAM. Aktuálne nastavenia zistíte takto:

sudo -u postgres psql -c "SHOW shared_buffers; SHOW effective_cache_size; SHOW work_mem;"

Na ručnú úpravu upravte /etc/postgresql/16/main/conf.d/99-tuning.conf a reštartujte PostgreSQL:

systemctl restart postgresql

Prihlasovacie údaje servera

Prihlasovacie údaje PostgreSQL a pgAdmin4 sú uložené v /root/.pg_credentials.

Čo je predkonfigurované

  • Vzdialený prístup: PostgreSQL prijíma pripojenia z ľubovoľnej IP na porte 5432 (overovanie scram-sha-256)
  • shared_buffers: Automaticky nastavené na 25 % dostupnej RAM pri prvom štarte
  • effective_cache_size: Nastavené na 75 % RAM pre optimálne plánovanie dopytov
  • Kódovanie: Databázy sa vytvárajú s kódovaním UTF-8 (utf8, en_US.UTF-8)

Zahrnutý softvér

Komponent Verzia
Ubuntu24.04 LTS
PostgreSQL16 (PGDG APT)
Apache2.4
pgAdmin4Najnovšia (webový režim)
CertbotNajnovšia
Fail2Ban1.0

Riešenie problémov

Problém Riešenie
Nedá sa vzdialene pripojiť k PostgreSQL Skontrolujte, či port 5432 neblokuje firewall. Overte listen_addresses = '*' v conf.d/99-custom.conf a či pg_hba.conf povoľuje vašu IP
pgAdmin4 hlási chybu prihlásenia Použite e-mail a Admin Password z objednávky. Prihlasovacie údaje sú v /root/.pg_credentials
Stránka pgAdmin4 sa nenačíta (HTTP 500) Skontrolujte Apache: systemctl status apache2. Skontrolujte logy pgAdmin: /var/log/pgadmin/pgadmin4.log
PostgreSQL sa nespustí Kontrola logov: journalctl -u postgresql -n 50. Častá príčina: plný disk (df -h /) alebo neplatná konfigurácia (pg_lsclusters)
Zabudnuté heslo administrátora PostgreSQL Pripojte sa cez SSH a skontrolujte /root/.pg_credentials
Zablokované službou Fail2Ban Odblokujte svoju IP cez konzolu VNC v klientskom paneli
Zabudnuté heslo root Obnovte ho cez konzolu VNC v klientskom paneli