Android

Hvordan installere postgresql på centos 8

How to Install PostgreSQL 12 on CentOS 8 RHEL 8

How to Install PostgreSQL 12 on CentOS 8 RHEL 8

Innholdsfortegnelse:

Anonim

PostgreSQL eller Postgres er et open-source generell objekt-relasjonell databasesystem med mange avanserte funksjoner som lar deg bygge feiltolerante miljøer eller komplekse applikasjoner.

I denne guiden vil vi diskutere hvordan du installerer PostgreSQL databaseserver på CentOS 8. Før du velger hvilken versjon du vil installere, må du forsikre deg om at applikasjonene dine støtter den.

Vi vil også utforske det grunnleggende om PostgreSQL-databaseadministrasjon.

Forutsetninger

For å kunne installere pakker, må du være logget inn som root eller bruker med sudo-rettigheter.

Installere PostgreSQL på CentOS 8

I skrivende stund er det to versjoner av PostgreSQL-serveren som er tilgjengelige for installasjon fra standard CentOS-lagringsplassene: versjon 9.6 og 10.0.

For å liste over tilgjengelige PostgreSQL-modulstrømmer skriver du:

dnf module list postgresql

Utgangen viser at postgresql-modulen er tilgjengelig med to strømmer. Hver strøm har to profiler: server og klient. Stream 10 med profilserveren er 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. For å installere standardstrømmen, type PostgreSQL server versjon 10.0:

    sudo dnf install @postgresql:10

    Slik installerer du PostgreSQL-serverversjon 9.6-typen:

    sudo dnf install @postgresql:9.6

Det kan også være lurt å installere bidragspakken som inneholder flere tilleggsfunksjoner for PostgreSQL-databasen:

sudo dnf install postgresql-contrib

Når installasjonen er fullført, initialiserer PostgreSQL-databasen med følgende kommando:

sudo postgresql-setup initdb

Initializing database… OK

Start PostgreSQL-tjenesten og aktiver den for å starte på oppstart:

sudo systemctl enable --now postgresql

Bruk psql verktøyet til å bekrefte installasjonen ved å koble til PostgreSQL-databaseserveren og skrive ut versjonen:

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 og autentiseringsmetoder

PostgreSQL håndterer tilgangstillatelser for databasen ved å bruke begrepet roller. En rolle kan representere en databasebruker eller en gruppe databasebrukere.

PostgreSQL støtter flere autentiseringsmetoder. De mest brukte metodene er:

  • Tillit - En rolle kan koble til uten passord, så lenge betingelsene som er definert i pg_hba.conf er oppfylt. Passord - En rolle kan koble seg ved å oppgi et passord. Passordene kan lagres som scram-sha-256 , md5 og password (klartekst).Ident - Støttes kun på TCP / IP-tilkoblinger. Det fungerer ved å skaffe klientens brukernavn, med en valgfri brukernavnskartlegging. Peer - Samme som Ident, men det støttes bare på lokale tilkoblinger.

PostgreSQL-klientgodkjenning er definert i konfigurasjonsfilen som heter pg_hba.conf . For lokale tilkoblinger er PostgreSQL som standard satt til å bruke peer-autentiseringsmetoden.

postgres brukeren opprettes automatisk når du installerer PostgreSQL-serveren. Denne brukeren er superbruker for PostgreSQL-forekomsten. Det tilsvarer MySQL rotbruker.

For å logge på PostgreSQL-serveren som postgres bruker, bytter du først til brukeren og deretter får tilgang til PostgreSQL-ledeteksten ved hjelp av psql verktøyet:

sudo su - postgres psql

Herfra kan du samhandle med PostgreSQL-forekomsten. For å gå ut av PostgreSQL-skallet, skriver du:

\q

Du kan også få tilgang til PostgreSQL-ledeteksten uten å bytte brukere med sudo kommandoen:

sudo -u postgres psql

Vanligvis brukes postgres brukeren bare fra localhost.

Opprette PostgreSQL rolle og database

Bare superusere og roller med CREATEROLE privilegium kan lage nye roller.

I det følgende eksemplet vil vi opprette en ny rolle som heter john , en database som heter johndb , og gi rettigheter i databasen.

  1. Koble først til PostgreSQL-skallet:

    sudo -u postgres psql

    Opprett en ny PostgreSQL-rolle ved hjelp av følgende kommando:

    create role john;

    Opprett en ny database:

    create database johndb;

    Gi rettigheter til brukeren i databasen ved å kjøre følgende spørring:

    grant all privileges on database johndb to john;

Aktiver ekstern tilgang til PostgreSQL-serveren

Som standard lytter PostgreSQL-serveren bare til det lokale grensesnittet 127.0.0.1 .

For å aktivere ekstern tilgang til PostgreSQL-serveren din, åpner du konfigurasjonsfilen:

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

Bla ned til delen CONNECTIONS AND AUTHENTICATION og legg til / rediger følgende linje:

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

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

Lagre filen og start PostgreSQL-tjenesten på nytt med:

sudo systemctl restart postgresql

Bekreft endringene med ss verktøyet:

ss -nlt | grep 5432

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

Utgangen over viser at PostgreSQL-serveren lytter på standardporten på alle grensesnitt (0.0.0.0).

Det siste trinnet er å konfigurere serveren til å godta fjerntilkoblinger ved å redigere filen pg_hba.conf .

Nedenfor er noen eksempler som viser forskjellige brukssaker:

/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

Konklusjon

CentOS 8 har to PostgreSQL-versjoner: 9.6 og 10.0.

For mer informasjon om dette emnet, besøk PostgreSQL-dokumentasjonen

centos postgresql database