Android

Jak zainstalować Postgresql na Centos 7

Centos: 7 установить определенную версию PostgreSQL ( 9.2.23 )

Centos: 7 установить определенную версию PostgreSQL ( 9.2.23 )

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ą tworzyć złożone aplikacje internetowe.

W tym samouczku pokażemy dwie różne metody instalacji PostgreSQL na komputerze CentOS 7. Pierwsza metoda przeprowadzi Cię przez kroki niezbędne do zainstalowania PostgreSQL v9.2.23 z repozytoriów CentOS, podczas gdy druga pokaże, jak zainstalować najnowszą wersję PostgreSQL z oficjalnych repozytoriów PostgreSQL.

Jeśli twoja aplikacja nie wymaga najnowszej wersji, zalecamy użycie pierwszej metody i zainstalowanie PostgreSQL z repozytoriów CentOS.

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

Wymagania wstępne

Przed kontynuowaniem tego samouczka upewnij się, że jesteś zalogowany jako użytkownik z uprawnieniami sudo.

Zainstaluj PostgreSQL z repozytoriów CentOS

W chwili pisania tego artykułu najnowsza wersja PostgreSQL dostępna z repozytoriów CentOS to PostgreSQL wersja 9.2.23.

Aby zainstalować PostgreSQL na serwerze CentOS, wykonaj następujące czynności:

  1. Instalowanie PostgreSQL

    Aby zainstalować serwer PostgreSQL wraz z pakietem contrib PostgreSQL, który oferuje kilka dodatkowych funkcji dla bazy danych PostgreSQL, po prostu wpisz:

    sudo yum install postgresql-server postgresql-contrib

    Inicjalizacja bazy danych

    Zainicjuj bazę danych PostgreSQL za pomocą następującego polecenia:

    sudo postgresql-setup initdb

    Initializing database… OK

    Uruchamianie PostgreSQL

    Aby uruchomić usługę PostgreSQL i umożliwić jej uruchomienie podczas rozruchu, po prostu wpisz:

    sudo systemctl start postgresql sudo systemctl enable postgresql

    Weryfikacja instalacji PostgreSQL

    Aby zweryfikować instalację, spróbujemy połączyć się z serwerem bazy danych PostgreSQL za pomocą narzędzia psql i wydrukować wersję serwera:

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

    PostgreSQL 9.2.23 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit (1 row)

Psql to interaktywne narzędzie wiersza poleceń, które pozwala nam na interakcję z serwerem PostgreSQL.

Zainstaluj PostgreSQL z repozytoriów PostgreSQL

W chwili pisania tego artykułu najnowsza wersja PostgreSQL dostępna z oficjalnych repozytoriów PostgreSQL to PostgreSQL w wersji 10.4. Przed przejściem do następnego kroku należy odwiedzić stronę repozytorium Yum PostgreSQL i sprawdzić, czy jest dostępna nowa wersja.

Wykonaj poniższe kroki, aby zainstalować najnowszą wersję PostgreSQL na serwerze CentOS:

  1. Włączanie repozytorium PostgreSQL

    Aby włączyć repozytorium PostgreSQL, wystarczy zainstalować plik rpm repozytorium:

    sudo yum install

    Instalowanie PostgreSQL

    Po włączeniu repozytorium zainstaluj serwer PostgreSQL i pakiety contg PostgreSQL za pomocą:

    sudo yum install postgresql10-server postgresql10-contrib

    Inicjalizacja bazy danych

    Aby zainicjować typ bazy danych PostgreSQL:

    sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

    Initializing database… OK

    Uruchamianie PostgreSQL

    Aby uruchomić usługę PostgreSQL i umożliwić jej uruchamianie podczas rozruchu:

    sudo systemctl start postgresql-10 sudo systemctl enable postgresql-10

    Weryfikacja instalacji PostgreSQL

    Aby zweryfikować instalację, spróbujemy połączyć się z serwerem bazy danych PostgreSQL za pomocą narzędzia psql i wydrukować wersję serwera:

    sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"

    PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit (1 row)

Role PostgreSQL i metody uwierzytelniania

Uprawnienia dostępu do bazy danych w PostgreSQL są obsługiwane z pojęciem 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 - Za pomocą tej metody 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 się łączyć poprzez podanie hasła. Hasła mogą być przechowywane jako scram-sha-256 md5 i password (czysty tekst).Ident - Ta metoda jest obsługiwana tylko w połączeniach TCP / IP. Działa poprzez uzyskanie nazwy użytkownika systemu operacyjnego klienta, z opcjonalnym mapowaniem nazwy użytkownika. Peer - Identyczny 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 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 użytkownik postgres, musisz najpierw przejść do użytkownika postgre, a następnie uzyskać 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

Użytkownik postgres jest zwykle używany tylko z lokalnego hosta i zaleca się, aby nie ustawiać hasła dla tego użytkownika.

Jeśli zainstalowałeś PostgreSQL w wersji 10 z oficjalnych repozytoriów PostgreSQL, musisz użyć pełnej ścieżki do psql binarnego psql którym jest /usr/pgsql-10/bin/psql .

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 baza danych o nazwie johndb i johndb uprawnienia do bazy danych.

  1. Połącz się z powłoką PostgreSQL

    sudo -u postgres psql

    Utwórz nową rolę PostgreSQL

    Następujące polecenie utworzy nową rolę o nazwie John:

    create role john;

    Utwórz nową bazę danych PostgreSQL

    Utwórz nową bazę danych o nazwie johndb za pomocą komendy createdb :

    create database johndb;

    Przyznaj uprawnienia

    Aby udzielić uprawnień john użytkownikowi bazy danych, którą utworzyliśmy w poprzednim kroku, uruchom 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 umożliwić zdalny dostęp do serwera PostgreSQL, otwórz plik konfiguracyjny postgresql.conf i dodaj listen_addresses = '*' w sekcji CONNECTIONS AND AUTHENTICATION .

sudo vim /var/lib/pgsql/data/postgresql.conf Jeśli korzystasz z PostgreSQL w wersji 10, ścieżka do pliku to /var/lib/pgsql/10/data/postgresql.conf ./var/lib/pgsql/data/postgresql.conf

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

zapisz plik i zrestartuj usługę PostgreSQL za pomocą:

sudo systemctl restart postgresql Jeśli używasz PostgreSQL w wersji 10, zrestartuj usługę PostgreSQL z systemctl restart postgresql-10 .

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

Jak widać z danych wyjściowych powyżej, serwer PostgreSQL nasłuchuje 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 will be able to access all databases from all locations using a 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 a 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 Jeśli korzystasz z PostgreSQL w wersji 10, pełna ścieżka do pliku to /var/lib/pgsql/10/data/pg_hba.conf .

Wniosek

Nauczyłeś się, jak instalować i konfigurować PostgreSQL na serwerze CentOS 7.

Więcej informacji na ten temat można znaleźć w dokumentacji PostgreSQL.

baza danych centos postgresql