Android

Jak zainstalować Postgresql na Centos 8

How to Install PostgreSQL 12 on CentOS 8 RHEL 8

How to Install PostgreSQL 12 on CentOS 8 RHEL 8

Spisu treści:

Anonim

PostgreSQL lub Postgres to ogólnodostępny obiektowy system zarządzania relacyjnymi bazami danych o otwartym kodzie źródłowym z wieloma zaawansowanymi funkcjami, które pozwalają budować środowiska odporne na uszkodzenia lub złożone aplikacje.

W tym przewodniku omówimy sposób instalacji serwera bazy danych PostgreSQL na CentOS 8. Przed wybraniem wersji do zainstalowania upewnij się, że aplikacje ją obsługują.

Omówimy również podstawy administracji bazą danych PostgreSQL.

Wymagania wstępne

Aby móc instalować pakiety, musisz być zalogowany jako użytkownik root lub użytkownik z uprawnieniami sudo.

Instalowanie PostgreSQL na CentOS 8

W chwili pisania tego artykułu dostępne są dwie wersje serwera PostgreSQL ze standardowych repozytoriów CentOS: wersja 9.6 i 10.0.

Aby wyświetlić listę dostępnych strumieni modułów PostgreSQL, wpisz:

dnf module list postgresql

Dane wyjściowe pokazują, że moduł postgresql jest dostępny z dwoma strumieniami. Każdy strumień ma dwa profile: serwer i klient. Strumień 10 z serwerem profilu jest domyślny:

CentOS-8 - AppStream Name Stream Profiles Summary postgresql 10 client, server PostgreSQL server and client module postgresql 9.6 client, server PostgreSQL server and client module

  1. Aby zainstalować domyślny strumień, typ serwera PostgreSQL w wersji 10.0:

    sudo dnf install @postgresql:10

    Aby zainstalować serwer PostgreSQL w wersji 9.6:

    sudo dnf install @postgresql:9.6

Możesz także zainstalować pakiet contrib, który zapewnia kilka dodatkowych funkcji dla bazy danych PostgreSQL:

sudo dnf install postgresql-contrib

Po zakończeniu instalacji zainicjuj bazę danych PostgreSQL za pomocą następującego polecenia:

sudo postgresql-setup initdb

Initializing database… OK

Uruchom usługę PostgreSQL i włącz ją podczas uruchamiania:

sudo systemctl enable --now postgresql

Użyj narzędzia psql , aby zweryfikować instalację, łącząc się z serwerem bazy danych PostgreSQL i wydrukuj jego wersję:

sudo -u postgres psql -c "SELECT version();"

PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit

Role PostgreSQL i metody uwierzytelniania

PostgreSQL obsługuje uprawnienia dostępu do bazy danych przy użyciu koncepcji ról. Rola może reprezentować użytkownika bazy danych lub grupę użytkowników bazy danych.

PostgreSQL obsługuje wiele metod uwierzytelniania. Najczęściej stosowanymi metodami są:

  • Zaufanie - rola może łączyć się bez hasła, o ile spełnione są warunki określone w pg_hba.conf pg_hba.conf. Hasło - rola może łączyć się przez podanie hasła. Hasła mogą być przechowywane jako scram-sha-256 , md5 i password (czysty tekst).Ident - Obsługiwane tylko w połączeniach TCP / IP. Działa poprzez uzyskanie nazwy użytkownika systemu operacyjnego klienta, z opcjonalnym mapowaniem nazwy użytkownika. Peer - Taki sam jak Ident, ale jest obsługiwany tylko w połączeniach lokalnych.

Uwierzytelnianie klienta PostgreSQL jest zdefiniowane w pliku konfiguracyjnym o nazwie pg_hba.conf . Domyślnie w przypadku połączeń lokalnych PostgreSQL jest skonfigurowany do korzystania z metody uwierzytelniania równorzędnego.

Użytkownik postgres jest tworzony automatycznie podczas instalacji serwera PostgreSQL. Ten użytkownik jest superużytkownikiem instancji PostgreSQL. Jest to odpowiednik użytkownika root MySQL.

Aby zalogować się do serwera PostgreSQL jako użytkownik postgres , najpierw przełącz się na użytkownika, a następnie psql dostęp do monitu PostgreSQL za pomocą narzędzia psql :

sudo su - postgres psql

Stąd możesz wchodzić w interakcje z instancją PostgreSQL. Aby wyjść z powłoki PostgreSQL, wpisz:

\q

Możesz również uzyskać dostęp do monitu PostgreSQL bez przełączania użytkowników za pomocą polecenia sudo :

sudo -u postgres psql

Zazwyczaj użytkownik postgres jest używany tylko z hosta lokalnego.

Tworzenie roli i bazy danych PostgreSQL

Tylko superużytkownicy i role z uprawnieniem CREATEROLE mogą tworzyć nowe role.

W poniższym przykładzie utworzymy nową rolę o nazwie john , bazę danych o nazwie johndb i johndb uprawnienia do bazy danych.

  1. Najpierw połącz się z powłoką PostgreSQL:

    sudo -u postgres psql

    Utwórz nową rolę PostgreSQL za pomocą następującego polecenia:

    create role john;

    Utwórz nową bazę danych:

    create database johndb;

    Przyznaj uprawnienia użytkownikowi w bazie danych, uruchamiając następujące zapytanie:

    grant all privileges on database johndb to john;

Włącz zdalny dostęp do serwera PostgreSQL

Domyślnie serwer PostgreSQL nasłuchuje tylko na interfejsie lokalnym 127.0.0.1 .

Aby włączyć zdalny dostęp do serwera PostgreSQL, otwórz plik konfiguracyjny:

sudo nano /var/lib/pgsql/data/postgresql.conf

Przewiń w dół do sekcji CONNECTIONS AND AUTHENTICATION i dodaj / edytuj następujący wiersz:

/var/lib/pgsql/data/postgresql.conf

#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on;

Zapisz plik i uruchom ponownie usługę PostgreSQL za pomocą:

sudo systemctl restart postgresql

Sprawdź zmiany za pomocą narzędzia ss :

ss -nlt | grep 5432

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

Powyższe dane wyjściowe pokazują, że serwer PostgreSQL nasłuchuje na domyślnym porcie na wszystkich interfejsach (0.0.0.0).

Ostatnim krokiem jest skonfigurowanie serwera do akceptowania połączeń zdalnych poprzez edycję pliku pg_hba.conf .

Poniżej znajduje się kilka przykładów pokazujących różne przypadki użycia:

/var/lib/pgsql/data/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD # The user jane can access all databases from all locations using an md5 password host all jane 0.0.0.0/0 md5 # The user jane can access only the janedb database from all locations using an md5 password host janedb jane 0.0.0.0/0 md5 # The user jane can access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust

Wniosek

CentOS 8 udostępnia dwie wersje PostgreSQL: 9.6 i 10.0.

Aby uzyskać więcej informacji na ten temat, odwiedź dokumentację PostgreSQL

baza danych centos postgresql