PostgreSQL - průvodce pro začátečníky
PostgreSQL je výkonná open-source relační databáze známá spolehlivostí, integritou dat a pokročilými funkcemi, jako je podpora JSON, fulltextové vyhledávání a rozšiřitelnost. Server obsahuje plně nakonfigurovaný PostgreSQL 16 s heslem administrátora, které jste zadali při objednávce. Pro správu databází přes web je k dispozici pgAdmin4.
Krok 1 – Ověřte, že PostgreSQL funguje
IP adresa a heslo root vašeho serveru jsou uvedeny na stránce Server Details v klientském panelu. pgAdmin4 je webový nástroj pro správu PostgreSQL. Otevřete http://your.server.ip/pgadmin4 v prohlížeči a ověřte, že funguje.
Přihlášení do pgAdmin4:
- E-mail: e-mail, který jste zadali při objednávce
- Heslo: heslo administrátora, které jste zadali při objednávce
Superuživatel PostgreSQL:
- Uživatelské jméno:
postgres - Heslo: heslo administrátora, které jste zadali při objednávce
Přihlaste se do pgAdmin4 a přidejte připojení k serveru PostgreSQL:
- Klikněte pravým tlačítkem na Servers v levém panelu a zvolte Register > Server
- General karta: zadejte název (např. „Local“)
- Connection karta: Host =
127.0.0.1, Port =5432, Username =postgres, Password = vaše Admin Password - Klikněte na Uložit
Nyní můžete procházet databáze, spouštět SQL dotazy, importovat/exportovat data a spravovat uživatele přes webové rozhraní.
Databázové servery nepotřebují veřejný přístup z internetu. Pro bezpečný přístup umístěte server do privátní sítě za router VyOS a k PostgreSQL a pgAdmin4 se připojujte přes VPN na privátní IP serveru.
Krok 2 – Vzdálené připojení k PostgreSQL
PostgreSQL je nakonfigurován k přijímání vzdálených připojení. Připojit se můžete z libovolné aplikace nebo nástroje:
psql -h your.server.ip -U postgres
Údaje pro připojení z grafických databázových nástrojů (pgAdmin Desktop, DBeaver, DataGrip atd.):
| Parametr | Hodnota |
|---|---|
| Hostitel | your.server.ip |
| Port | 5432 |
| Uživatelské jméno | postgres |
| Heslo | Admin Password z objednávky |
Poznámka: Port 5432 je protokol PostgreSQL, ne HTTP – v prohlížeči ho otevřít nelze. Použijte databázového klienta nebo příkaz výše.
Krok 3 – Zapnutí SSL pro pgAdmin4 (volitelné)
Pokud na tento server směřuje vaše doména, můžete pro pgAdmin4 zapnout HTTPS s bezplatným certifikátem Let’s Encrypt. Připojte se přes SSH a spusťte:
ssh root@your.server.ip
/opt/setup/get-ssl.sh db.yourdomain.com
Skript ověří DNS, získá certifikát a automaticky nastaví Apache pro HTTPS. Po dokončení je pgAdmin4 dostupný na https://db.yourdomain.com/pgadmin4.
Poznámka: Před spuštěním skriptu se ujistěte, že A záznam vaší domény směřuje na IP serveru. SSL je volitelné – pgAdmin4 funguje bez problémů přes HTTP s přístupem přes IP adresu.
Správa databází
Vytváření dalších databází
Další databáze můžete vytvořit přes pgAdmin4 nebo 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
Přes pgAdmin4: Klikněte pravým tlačítkem na databázi a zvolte Backup nebo Restore. Podporuje formáty custom, tar, plain a directory.
Přes příkazový řádek:
# 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
U velkých databází použijte pg_dump -Fc (formát custom) pro rychlejší a menší zálohy.
Po instalaci
Fail2Ban – ochrana proti útokům hrubou silou
Váš server obsahuje Fail2Ban předkonfigurovaný k ochraně SSH proti útokům hrubou silou.
| Pravidlo | Max. počet pokusů | Doba blokace |
|---|---|---|
| SSH | 5 neúspěšných přihlášení | 10 minut |
Užitečné příkazy:
# Check banned IPs
fail2ban-client status sshd
# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4
Pokud se omylem zablokujete, připojte se přes konzoli VNC v klientském panelu a odblokujte svou IP.
Správa služeb
PostgreSQL a Apache běží přes systemd. Běžné příkazy:
# Check service status
systemctl status postgresql
systemctl status apache2
# Restart PostgreSQL
systemctl restart postgresql
# View PostgreSQL logs
journalctl -u postgresql -n 100
Ladění výkonu PostgreSQL
PostgreSQL se při prvním startu automaticky vyladí podle dostupné RAM. Aktuální nastavení zjistíte takto:
sudo -u postgres psql -c "SHOW shared_buffers; SHOW effective_cache_size; SHOW work_mem;"
Pro ruční úpravu upravte /etc/postgresql/16/main/conf.d/99-tuning.conf a restartujte PostgreSQL:
systemctl restart postgresql
Přihlašovací údaje serveru
Přihlašovací údaje PostgreSQL a pgAdmin4 jsou uloženy v /root/.pg_credentials.
Co je předkonfigurováno
- Vzdálený přístup: PostgreSQL přijímá připojení z libovolné IP na portu 5432 (ověřování scram-sha-256)
- shared_buffers: Automaticky nastaveno na 25 % dostupné RAM při prvním startu
- effective_cache_size: Nastaveno na 75 % RAM pro optimální plánování dotazů
- Kódování: Databáze se vytvářejí s kódováním UTF-8 (utf8, en_US.UTF-8)
Zahrnutý software
| Komponenta | Verze |
|---|---|
| Ubuntu | 24.04 LTS |
| PostgreSQL | 16 (PGDG APT) |
| Apache | 2.4 |
| pgAdmin4 | Nejnovější (webový režim) |
| Certbot | Nejnovější |
| Fail2Ban | 1.0 |
Řešení problémů
| Problém | Řešení |
|---|---|
| Nelze se vzdáleně připojit k PostgreSQL | Zkontrolujte, že port 5432 neblokuje firewall. Ověřte listen_addresses = '*' v conf.d/99-custom.conf a že pg_hba.conf povoluje vaši IP |
| pgAdmin4 hlásí chybu přihlášení | Použijte e-mail a Admin Password z objednávky. Přihlašovací údaje jsou v /root/.pg_credentials |
| Stránka pgAdmin4 se nenačte (HTTP 500) | Zkontrolujte Apache: systemctl status apache2. Zkontrolujte logy pgAdmin: /var/log/pgadmin/pgadmin4.log |
| PostgreSQL se nespustí | Kontrola logů: journalctl -u postgresql -n 50. Častá příčina: plný disk (df -h /) nebo neplatná konfigurace (pg_lsclusters) |
| Zapomenuté heslo administrátora PostgreSQL | Připojte se přes SSH a zkontrolujte /root/.pg_credentials |
| Blokováno službou Fail2Ban | Odblokujte svou IP přes konzoli VNC v klientském panelu |
| Zapomenuté heslo root | Obnovte jej přes konzoli VNC v klientském panelu |