GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat server PostgreSQL na Ubuntu 18.04

PostgreSQL je celosvětově podporovaná databáze s otevřeným zdrojovým kódem. S více než 30 lety služby je PostgreSQL, díky různým dostupným doplňkům, známý svou robustností, škálovatelností a výkonem.

Nejprve se připojte k serveru prostřednictvím připojení SSH. Pokud jste tak ještě neučinili, doporučujeme se podle našeho průvodce bezpečně připojit pomocí SSH. V případě lokálního serveru přejděte k dalšímu kroku a otevřete terminál svého serveru.

Instalace PostgreSQL

Chcete-li pokračovat v instalaci PostgreSQL, použijte správce balíčků apt. Nezapomeňte aktualizovat mezipaměť:

$ sudo apt update && sudo apt install postgresql postgresql-contrib

Po dokončení instalace bude služba okamžitě dostupná. Zkontrolujte soubor protokolu v /var/log/postgresql/postgresql-10-main.log, abyste se ujistili

#  tail /var/log/postgresql/postgresql-10-main.log

...LOG:  database system is ready to accept connections

...

Pokud vše funguje správně, výše uvedený text bude na posledních řádcích souboru protokolu.

Ověřování instalace

Pro ověření úspěšné instalace PostgreSQL použijte klienta příkazového řádku s názvem psql. Nejprve použijte výchozího uživatele nainstalovaného službou. Pro přístup k databázi používá proces ověřování výchozí konfigurace PostgreSQL stejné systémové uživatele.

Chcete-li se přihlásit pomocí výchozího uživatele , z příkazového řádku spusťte

$ sudo -i -u postgres

Nyní spusťte klienta a pomocí příkazu \l zobrazte seznam dostupných databází:

$ sudo -i -u postgres

$ psql

postgres=# \l
                                                  List of databases

   Name    | Owner   | Encoding |   Collate | Ctype    | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

(3 rows)
                postgres=# \q

[email protected]:~$ exit

Po dokončení ukončete klienta příkazem \q a vraťte se k původnímu uživateli zadáním „exit“.

Správa uživatelů a oprávnění

Jak již bylo zmíněno, PostgreSQL předpokládá, že každý uživatel přítomný v jeho službě je také přítomen v systému. Chcete-li vytvořit nového uživatele, nejprve jej přidejte do systému pomocí adduser:

$ sudo adduser tutorial

Adding user `tutorial' ...

Adding new group `tutorial' (1000) ...

Adding new user `tutorial' (1000) with group `tutorial' ...

Creating home directory `/home/tutorial' ...

Copying files from `/etc/skel' ...

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

Changing the user information for tutorial

Enter the new value, or press ENTER for the default

        Full Name []:

        Room Number []:

        Work Phone []:

        Home Phone []:

        Other []:

Is the information correct? [Y/n] y

V následujícím příkladu se vytváří uživatel s názvem „výukový program“, aniž by byly zadány další informace, jako je jméno nebo telefonní číslo. Po dokončení lze vytvořit uživatele PostgreSQL. nejprve se přihlásíte s uživatelem postgres:

$ sudo -i -u postgres
                $ createuser --interactive

Enter name of role to add: tutorial

Shall the new role be a superuser? (y/n) n

Shall the new role be allowed to create databases? (y/n) n

Shall the new role be allowed to create more new roles? (y/n) n

Po vytvoření uživatele nastavte heslo, přihlaste se přes superuser postgres a změňte uživatele, kterého jste právě vytvořili:

$ psql

postgres=# ALTER USER tutorial PASSWORD 'password'; ALTER ROLE;

Databázi pro nově vytvořeného uživatele lze také vytvořit spuštěním příkazu:

$ createdb tutorial

Po dokončení se odhlaste a zkuste se přihlásit pomocí nově vytvořeného uživatele:

$ sudo -i -u tutorial

[email protected]:~$ psql

psql (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1))

Type "help" for help.
                tutorial=> \l

                                  List of databases

   Name    | Owner   | Encoding |   Collate | Ctype    | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 tutorial  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

(4 rows)

Povolení přístupu k externím klientům

V některých případech může být nutné povolit přístup externím klientům (například vašemu počítači) k jedné nebo více databázím na serveru. Normálně není PostgreSQL nakonfigurován tak, aby přijímal připojení, která nejsou lokální, takže změňte některé konfigurační soubory.

Prvním souborem, který má být upraven, je hlavní konfigurační soubor v /etc/postgresql/10/main/postgresql.conf.

Ujistěte se, že upravujete následující řádek z:

listen_addresses = 'localhost'

S:

listen_addresses = '*'

Tímto způsobem informujete PostgreSQL, aby očekával příchozí připojení z libovolného síťového rozhraní.

Ujistěte se, že jste změny uložili. Nyní přejděte k úpravě souboru, který spravuje pravidla přístupu k serveru v /etc/postgresql/10/main/pg_hba.conf, přidáním následujícího řádku:

host    tutorial        tutorial 0.0.0.0/0               md5

Tato úprava umožňuje uživateli "výukového" programu přistupovat ke své databázi z libovolného hostitele. Konkrétně jsou označena pole:

  1. hostitel:typ připojení, které přijímáte. Možné hodnoty jsou:

    • místní:nesíťová připojení ze systému
    • hostitel:jakýkoli typ připojení TCP/IP
    • hostssl:TCP/IP připojení pouze pod protokolem SSL
    • hostnossl:Připojení TCP/IP NENÍ pod protokolem SSL
  2. výukový program:název databáze pro povolení přístupu, pro odkaz na všechny databáze použijte "all"

  3. výukový program:uživatelské jméno pro udělení přístupu

  4. 0.0.0.0/0:IP adresa, ve vašem případě autorizujete přístup k jakékoli adrese IPv4

  5. md5:uznávaná metodika ověřování, některé z nejdůležitějších jsou:

    • md5:ověření hesla
    • důvěra:bezpodmínečně přijímá připojení bezpodmínečně
    • peer:používá systémové uživatelské jméno pro připojení pouze ke stejnojmenné databázi.

Další informace naleznete na adrese https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html nebo v oficiálním dokumentu PostgreSQL.

Po ukončení restartujte službu, aby se všechny změny projevily:

$ sudo systemctl restart postgresql

Linux
  1. Jak nainstalovat vyhledejte na serveru Ubuntu

  2. Jak nainstalovat VSFTPD na cloudový server Ubuntu

  3. Jak nainstalovat MariaDB na Ubuntu 22.04

  1. Jak nainstalovat PostgreSQL a pgAdmin4 na Ubuntu 20.04

  2. Jak nainstalovat PostgreSQL 14 v Ubuntu 20.04

  3. Jak nainstalovat Ubuntu Server 15.10 na Hyper-v?

  1. Jak nainstalovat PostgreSQL na Ubuntu 16.04

  2. Jak nainstalovat OpenLDAP na Ubuntu Server 22.04

  3. Jak nainstalovat Lighttpd na server Ubuntu