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:
- Kliknite pravým tlačidlom na Servers v ľavom paneli a zvoľte Register > Server
- General karta: zadajte názov (napr. „Local“)
- Connection karta: Host =
127.0.0.1, Port =5432, Username =postgres, Password = vaše Admin Password - 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 |
| Port | 5432 |
| Používateľské meno | postgres |
| Heslo | Admin 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 |
|---|---|---|
| SSH | 5 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 |
|---|---|
| Ubuntu | 24.04 LTS |
| PostgreSQL | 16 (PGDG APT) |
| Apache | 2.4 |
| pgAdmin4 | Najnovšia (webový režim) |
| Certbot | Najnovšia |
| Fail2Ban | 1.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 |