Android

Jak zainstalować Postgresql na Debianie 10

Como instalar o PostgreSQL no Linux Debian 10

Como instalar o PostgreSQL no Linux Debian 10

Spisu treści:

Anonim

PostgreSQL, często nazywany po prostu Postgres, to ogólnodostępny obiektowy system zarządzania relacyjnymi bazami danych typu open source. Posiada wiele zaawansowanych funkcji, takich jak kopie zapasowe online, odzyskiwanie w czasie, transakcje zagnieżdżone, zapytania SQL i JSON, kontrola współbieżności wielu wersji (MVCC), replikacja asynchroniczna i wiele innych.

Ten samouczek poprowadzi Cię przez kolejne etapy instalacji serwera bazy danych PostgreSQL na Debianie 10. Omówimy również podstawy podstawowej administracji bazami danych.

Instalowanie PostgreSQL

W chwili pisania tego artykułu najnowszą wersją PostgreSQL dostępną z domyślnych repozytoriów Debiana jest PostgreSQL wersja 11.5.

Aby zainstalować PostgreSQL na serwerze Debian, wykonaj następujące kroki jako użytkownik root lub użytkownik z uprawnieniami sudo:

  1. Zacznij od zaktualizowania indeksu pakietu APT:

    sudo apt update

    Zainstaluj serwer PostgreSQL i pakiet contrib, który zapewnia dodatkowe funkcje dla bazy danych PostgreSQL:

    sudo apt install postgresql postgresql-contrib

    Po zakończeniu instalacji uruchomi się usługa PostgreSQL. Aby zweryfikować instalację, użyj narzędzia psql , aby wydrukować wersję serwera:

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

    Dane wyjściowe powinny wyglądać mniej więcej tak:

    PostgreSQL 11.5 (Debian 11.5-1+deb10u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit

psql to interaktywny program terminalowy, który umożliwia interakcję z serwerem PostgreSQL.

Role PostgreSQL i metody uwierzytelniania

PostgreSQL obsługuje uprawnienia dostępu do bazy danych przy użyciu koncepcji ról. W zależności od konfiguracji roli może ona reprezentować użytkownika bazy danych lub grupę użytkowników bazy danych.

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

  • Zaufanie - rola może łączyć się bez hasła, o ile spełnione są kryteria zdefiniowane 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 dla połączeń 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 . W przypadku połączeń lokalnych PostgreSQL jest skonfigurowany do korzystania z metody uwierzytelniania równorzędnego.

Użytkownik „postgres” jest tworzony automatycznie po zainstalowaniu PostgreSQL. Ten użytkownik jest superużytkownikiem instancji PostgreSQL i jest równoważny z użytkownikiem root MySQL.

Aby zalogować się do serwera PostgreSQL jako „postgres”, przejdź do użytkownika postgre i uzyskaj dostęp do monitu PostgreSQL za pomocą narzędzia psql :

sudo su - postgres psql

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

\q

Możesz użyć polecenia sudo aby uzyskać dostęp do monitu PostgreSQL bez przełączania użytkowników:

sudo -u postgres psql

Użytkownik postgres jest zwykle używany tylko z lokalnego hosta.

Tworzenie roli i bazy danych PostgreSQL

Komenda createuser umożliwia tworzenie nowych ról z wiersza komend. Tylko superużytkownicy i role z uprawnieniem CREATEROLE mogą tworzyć nowe role.

W poniższym przykładzie utworzymy nową rolę o nazwie kylodb , bazę danych o nazwie kylodb i kylodb tej bazie uprawnienia.

  1. Najpierw utwórz rolę, wydając następujące polecenie:

    sudo su - postgres -c "createuser kylo"

    Następnie utwórz bazę danych za pomocą komendy createdb :

    sudo su - postgres -c "createdb kylodb"

    Aby przyznać uprawnienia użytkownikowi w bazie danych, połącz się z powłoką PostgreSQL:

    sudo -u postgres psql

    Uruchom następujące zapytanie:

    grant all privileges on database kylodb to kylo;

Włącz zdalny dostęp do serwera PostgreSQL

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

Otwórz plik konfiguracyjny postgresql.conf i dodaj listen_addresses = '*' w sekcji CONNECTIONS AND AUTHENTICATION . To instruuje serwer, aby nasłuchiwał na wszystkich interfejsach sieciowych.

sudo nano /etc/postgresql/11/main/postgresql.conf /etc/postgresql/11/main/postgresql.conf

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

Zapisz plik i uruchom ponownie usługę PostgreSQL, aby zmiany odniosły skutek:

sudo service postgresql restart

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:*

Dane wyjściowe powinny pokazywać, że serwer PostgreSQL nasłuchuje na wszystkich interfejsach (0.0.0.0).

Ostatnim krokiem jest skonfigurowanie serwera do akceptowania zdalnego logowania poprzez edycję pliku pg_hba.conf .

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

/etc/postgresql/11/main/pg_hba.conf

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

Wniosek

Pokazaliśmy, jak zainstalować i skonfigurować PostgreSQL na Debianie 10. Aby uzyskać więcej informacji na ten temat, zapoznaj się z Dokumentacją PostgreSQL.

baza danych debian postgresql