[1] PostgreSQL 13 – Instalacja
26 stycznia 2022Zainstaluj PostgreSQL aby skonfigurować serwer bazodanowy.
[1] Przełącz się na aktualne moduły PosgreSQL.
[root@vlsr01 ~]# dnf module reset postgresql
[2] Zainstaluj i uruchom PostgreSQL.
[root@vlsr01 ~]# dnf module -y install postgresql:13 [root@vlsr01 ~]# postgresql-setup --initdb * Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log [root@vlsr01 ~]# systemctl enable --now postgresql
[3] Przy domyślnych ustawieniach, możliwe jest zalogowanie do PostgreSQL tylko z [localhost] z autentykacją [peer]. Więcej informacji odnośnie metod autentykacji dostępne jest na: PostgreSQL: Documentation: 13: 20.1. The pg_hba.conf File.
#zezwolenie na połączenia tylko z localhost [root@vlsr01 ~]# grep listen_addresses /var/lib/pgsql/data/postgresql.conf #listen_addresses = 'localhost' # what IP address(es) to listen on; #domyślna metoda autentykacji [root@vlsr01 ~]# grep -v -E "^#|^$" /var/lib/pgsql/data/pg_hba.conf local all all peer host all all 127.0.0.1/32 ident host all all ::1/128 ident local replication all peer host replication all 127.0.0.1/32 ident host replication all ::1/128 ident
[4] W przypadku uwierzytelniania [peer], aby połączyć się z serwerem PostgreSQL, wymagany jest użytkownik systemu operacyjnego i użytkownik PostgreSQL o tej samej nazwie.
#dodaj użytkownika OS #my użyjemy istniejącego użytkownika [user01] [root@vlsr01 ~]# useradd user01 #dodaj użytkownika PostgreSQL i jego bazę danych z administratorem PostgreSQL [root@vlsr01 ~]# su - postgres [postgres@vlsr01 ~]$ createuser user01 [postgres@vlsr01 ~]$ createdb testdb -O user01 #pokaż użytkowników i bazy danych [postgres@vlsr01 ~]$ psql -c "select usename from pg_user;" usename ---------- postgres user01 (2 rows) [postgres@vlsr01 ~]$ psql -l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 | template0 | postgres | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 | postgres=CTc/postgres+ | | | | | =c/postgres testdb | user01 | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 | (4 rows)
[5] Połącz się z bazą danych za pomocą wcześniej dodanego użytkownika.
#podłączenie do bazy [user01@vlsr01 ~]$ psql testdb psql (13.5) Type "help" for help. testdb=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} user01 | | {} testdb=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 | template0 | postgres | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 | postgres=CTc/postgres+ | | | | | =c/postgres testdb | user01 | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 | (4 rows) testdb=# create table test_table (no int, name text); CREATE TABLE testdb=# \dt List of relations Schema | Name | Type | Owner --------+------------+-------+---------- public | test_table | table | postgres (1 row) testdb=# insert into test_table (no,name) values (01,'CentOS'); INSERT 0 1 testdb=# select * from test_table; no | name ----+-------- 1 | CentOS (1 row) testdb=# drop table test_table; DROP TABLE testdb=# \dt Did not find any relations. #wyjście testdb=# \q #skasuj testdb [user01@vlsr01 ~]$ dropdb testdb [user01@vlsr01 ~]$ psql -l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 | template0 | postgres | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 | postgres=CTc/postgres+ | | | | | =c/postgres (3 rows)