PostgreSQL je bezplatný opensource objektově-relační systém pro správu databází. Cílem tohoto tutoriálu je provést instalaci a základní konfiguraci PostgreSQL serveru na RHEL 8 / CentOS 8 Linux serveru.
V tomto tutoriálu se naučíte:
- Jak nainstalovat databázový server PostgreSQL na RHEL 8 / CentOS 8
- Jak spustit a povolit databázový server PostgreSQL
- Jak získat přístup k databázi PostgreSQL z localhost a vzdáleného umístění
- Jak nastavit heslo pro výchozí
postgres
uživatel - Jak povolit PostgreSQL, aby naslouchal ve všech sítích
- Jak zabezpečit vzdálené připojení PostgreSQL pomocí ověřování hesla MD5
- Jak otevřít port brány firewall PostgreSQL
- Jak navázat vzdálené připojení k serveru PostgreSQL pomocí
psql
klient
Inicializace a přístup k databázi PostgreSQL na Red Hat Enterprise Linux 8
Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | RHEL 8 / CentOS 8 |
Software | PostgreSQL Server 10.5-1.el8 |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Místní instalace PostgreSQL a přístup k databázi krok za krokem
- Nainstalujte server PostreSQL. Spusťte níže uvedený
dnf
příkaz k provedení instalace balíčku serveru PostreSQL:# dnf install postgresql-server
- Inicializace PostgreSQL databáze:
# postgresql-setup --initdb --unit postgresql * Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
- Spusťte PostgreSQL a volitelně povolte jeho spuštění po restartu.
# systemctl start postgresql # systemctl enable postgresql
V tuto chvíli by měl být server PostreSQL spuštěn a naslouchat na portu localhost
5432
. Použijtess
příkaz k potvrzení, že se jedná o tento případ:$ ss -nlt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:111 0.0.0.0:* LISTEN 0 32 192.168.122.1:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* LISTEN 0 128 [::]:111 [::]:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 128 [::1]:5432 [::]:*
- Přístup k databázi PostreSQL. Když nainstalujete databázi PostgreSQL do systému RHEL 8 / CentOS 8, instalační program také automaticky vytvoří nového výchozího uživatele
postgres
.Výchozí heslo pro
postgres
uživatel není nastaven, proto je prázdný. Pro přístup k databázi PostgreSQL nejprve spusťtesu
příkaz jako uživatel root pro přepnutí na uživatele postres. Poté zadejtepsql
pro přihlášení do databáze.POZNÁMKA
Jakýkoli pokus o přístup k databázi PostgreSQL jako uživatel root bude mít za následekpsql: FATAL: role "root" does not exist
chybová zpráva.Příklad:
# su - postgres $ psql psql (10.5) Type "help" for help. postgres=#
POZNÁMKA
Chcete-li ukončit shell databáze PostreSQL, zadejte\q
nebo stiskněteCTRL+d
kombinace kláves.
Vzdálený přístup k databázi PostgreSQL a zabezpečené připojení
- Nastavte heslo pro
postgres
uživatel. Abychom mohli vzdáleně přistupovat k serveru PostreSQL, nejprve nastavíme heslo propostres
uživatel:# su - postgres $ psql psql (10.5) Type "help" for help. postgres=# \password postgres Enter new password: Enter it again: postgres=# exit postgres-# \q
- Povolte serveru PostgreSQL naslouchat ve všech dostupných sítích. Upravte hlavní konfigurační soubor
/var/lib/pgsql/data/postgresql.conf
:# nano /var/lib/pgsql/data/postgresql.conf
Jakmile budete připraveni, přidejte následující řádek někam do PŘIPOJENÍ A OVĚŘENÍ sekce:
listen_addresses = '*'
UPOZORNĚNÍ
Výše uvedená konfigurace umožní PostreSQL naslouchat ve všech dostupných sítích. Doporučuje se nastavit přísnější pravidla, aby byl přístup k PostgreSQL povolen pouze z vybraných sítí.Použijte
ss
příkaz k potvrzení, že PostgreSQL naslouchá na0.0.0.0
síť:$ ss -nlt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:111 0.0.0.0:* LISTEN 0 32 192.168.122.1:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128 [::]:111 [::]:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 128 [::]:5432 [::]:*
- Povolte ověřování pomocí hesla šifrovaného MD5:
# echo "host all all 0.0.0.0/0 md5" >> /var/lib/pgsql/data/pg_hba.conf
- Použijte změny konfigurace PostgreSQL:
# systemctl restart postgresql
- Otevřete port brány firewall
5432
pro vzdálený příchozí provoz PostgreSQL:# firewall-cmd --zone=public --permanent --add-service=postgresql # firewall-cmd --reload
- Připojte se k databázovému serveru PostgreSQL ze vzdáleného umístění. Nejprve nainstalujte
psql
Klientský nástroj PostgreSQL na vašem vzdáleném hostiteli:RHEL/CENTOS # dnf install postgresql UBUNTU/DEBIAN # apt install postgresql-client
Vytvořte vzdálené připojení k hostiteli, např.
192.168.1.151
jakopostgres
uživatel a heslo uživatele, jak je definováno ve výšekroku 1 :$ psql -h 192.168.1.151 -U postgres Password for user postgres: psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1), server 10.5) Type "help" for help. postgres=#