Android

Hur man installerar postgresql på centos 8

CentOS 8 Server - #8 Install PostgreSQL

CentOS 8 Server - #8 Install PostgreSQL

Innehållsförteckning:

Anonim

PostgreSQL eller Postgres är ett öppet källkodsobjektrelativt databashanteringssystem med många avancerade funktioner som låter dig bygga feltoleranta miljöer eller komplexa applikationer.

I den här guiden kommer vi att diskutera hur du installerar PostgreSQL databaseserver på CentOS 8. Innan du väljer vilken version du vill installera, se till att dina applikationer stöder den.

Vi kommer också att utforska grunderna i PostgreSQL-databasadministration.

förutsättningar

För att kunna installera paket måste du vara inloggad som root eller användare med sudo-privilegier.

Installera PostgreSQL på CentOS 8

Vid skrivandet av denna artikel finns det två versioner av PostgreSQL-servern tillgängliga för installation från de vanliga CentOS-lagren: version 9.6 och 10.0.

Skriv en lista för tillgängliga PostgreSQL-modulströmmar:

dnf module list postgresql

Utgången visar att postgresql-modulen är tillgänglig med två strömmar. Varje ström har två profiler: server och klient. Stream 10 med profilservern är standard:

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. För att installera standardströmmen, typ PostgreSQL-server version 10.0:

    sudo dnf install @postgresql:10

    Så här installerar du PostgreSQL-servern version 9.6:

    sudo dnf install @postgresql:9.6

Du kanske också vill installera contrib-paketet som innehåller flera ytterligare funktioner för PostgreSQL-databasen:

sudo dnf install postgresql-contrib

När installationen är klar initialiserar du PostgreSQL-databasen med följande kommando:

sudo postgresql-setup initdb

Initializing database… OK

Starta PostgreSQL-tjänsten och aktivera den att starta vid start:

sudo systemctl enable --now postgresql

Använd psql verktyget för att verifiera installationen genom att ansluta till PostgreSQL-databasservern och skriva ut dess version:

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

PostgreSQL-roller och autentiseringsmetoder

PostgreSQL hanterar behörigheterna för databasåtkomst med hjälp av begreppet roller. En roll kan representera en databasanvändare eller en grupp databasanvändare.

PostgreSQL stöder flera autentiseringsmetoder. De vanligaste metoderna är:

  • Förtroende - En roll kan ansluta utan lösenord, så länge villkoren som definieras i pg_hba.conf är uppfyllda. Passord - En roll kan anslutas genom att tillhandahålla ett lösenord. Lösenorden kan lagras som scram-sha-256 , md5 och password (klartext).Ident - Stöds endast på TCP / IP-anslutningar. Det fungerar genom att skaffa klientens användarnamn för operativsystem, med en valfri mappning för användarnamn. Peer - Samma som Ident, men det stöds endast på lokala anslutningar.

PostgreSQL-klientautentisering definieras i konfigurationsfilen med namnet pg_hba.conf . Som standard, för lokala anslutningar, är PostgreSQL inställd på att använda peer-autentiseringsmetoden.

postgres användaren skapas automatiskt när du installerar PostgreSQL-servern. Den här användaren är superanvändaren för PostgreSQL-instansen. Det motsvarar MySQL-rootanvändaren.

För att logga in på PostgreSQL-servern som postgres användare, byt först till användaren och sedan åtkomst till PostgreSQL-prompten med psql verktyget:

sudo su - postgres psql

Härifrån kan du interagera med PostgreSQL-instansen. Om du vill lämna PostgreSQL-skalet skriver du:

\q

Du kan också komma åt PostgreSQL-prompten utan att byta användare med kommandot sudo :

sudo -u postgres psql

Vanligtvis används postgres användaren endast från localhost.

Skapa PostgreSQL-roll och databas

Endast superanvändare och roller med CREATEROLE privilegium kan skapa nya roller.

I följande exempel skapar vi en ny roll som heter john , en databas med namnet johndb och ger behörigheter i databasen.

  1. Anslut först till PostgreSQL-skalet:

    sudo -u postgres psql

    Skapa en ny PostgreSQL-roll med hjälp av följande kommando:

    create role john;

    Skapa en ny databas:

    create database johndb;

    Ge användarna behörigheter i databasen genom att köra följande fråga:

    grant all privileges on database johndb to john;

Aktivera fjärråtkomst till PostgreSQL-servern

Som standard lyssnar PostgreSQL-servern endast på det lokala gränssnittet 127.0.0.1 .

För att aktivera fjärråtkomst till din PostgreSQL-server öppnar du konfigurationsfilen:

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

Rulla ner till avsnittet CONNECTIONS AND AUTHENTICATION och lägg till / redigera följande rad:

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

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

Spara filen och starta om PostgreSQL-tjänsten med:

sudo systemctl restart postgresql

Verifiera ändringarna med ss verktyget:

ss -nlt | grep 5432

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

Utsignalen ovan visar att PostgreSQL-servern lyssnar på standardporten på alla gränssnitt (0.0.0.0).

Det sista steget är att konfigurera servern för att acceptera fjärranslutningar genom att redigera filen pg_hba.conf .

Nedan följer några exempel som visar olika användningsfall:

/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

Slutsats

CentOS 8 tillhandahåller två PostgreSQL-versioner: 9.6 och 10.0.

För mer information om detta ämne besök PostgreSQL-dokumentationen

centos postgresql-databas