Table of Contents

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:

  1. Klikněte pravým tlačítkem na Servers v levém panelu a zvolte Register > Server
  2. General karta: zadejte název (např. „Local“)
  3. Connection karta: Host = 127.0.0.1, Port = 5432, Username = postgres, Password = vaše Admin Password
  4. 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
Hostitelyour.server.ip
Port5432
Uživatelské jménopostgres
HesloAdmin 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
SSH5 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
Ubuntu24.04 LTS
PostgreSQL16 (PGDG APT)
Apache2.4
pgAdmin4Nejnovější (webový režim)
CertbotNejnovější
Fail2Ban1.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