Android

Hvordan installere postgresql på debian 9

Установка Postgresql в Debian 9 (Stretch)

Установка Postgresql в Debian 9 (Stretch)

Innholdsfortegnelse:

Anonim

PostgreSQL, ofte kjent ganske enkelt som Postgres, er et åpen kildekode-relasjonsdatabaseadministrasjonssystem med generelle formål. PostgreSQL har mange avanserte funksjoner som online sikkerhetskopiering, punktgjenoppretting, nestede transaksjoner, SQL- og JSON-spørring, MVCC-kontroll av flere versjoner, asynkron replikering og mer.

I denne opplæringen vil vi vise deg hvordan du installerer PostgreSQL på Debian 9 og utforske grunnleggende grunnleggende databaseadministrasjon.

Forutsetninger

Før du fortsetter med denne opplæringen, må du forsikre deg om at brukeren du er logget inn som har sudo-rettigheter.

Installerer PostgreSQL

Når jeg skriver denne artikkelen, er den siste versjonen av PostgreSQL tilgjengelig fra Debian-depotene PostgreSQL versjon 9.6.

Følg trinnene nedenfor for å installere PostgreSQL på Debian-serveren:

  1. Begynn med å oppdatere den lokale pakkeindeksen:

    sudo apt update

    Installer PostgreSQL-serveren og PostgreSQL contrib-pakken som inneholder tilleggsfunksjoner for PostgreSQL-databasen:

    sudo apt install postgresql postgresql-contrib

    Når installasjonen er fullført, starter PostgreSQL-tjenesten automatisk. For å bekrefte installasjonen kobler vi til PostgreSQL-databaseserveren ved hjelp av psql verktøyet og skriver ut serverversjonen:

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

    Utgangen vil se slik ut:

    version ----------------------------------------------------------------------------------------------------------- PostgreSQL 9.6.10 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit (1 row)

Psql er et interaktivt terminalprogram som lar deg samhandle med PostgreSQL-serveren.

PostgreSQL-roller og autentiseringsmetoder

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

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

  • Tillit - Med denne metoden kan rollen koble seg til uten et passord, så lenge kriteriene 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 - Denne metoden støttes bare på TCP / IP-tilkoblinger. Fungerer ved å skaffe klientens brukernavn 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 . Som standard for lokale tilkoblinger er PostgreSQL satt til å bruke peer-autentiseringsmetoden.

postgres brukeren opprettes automatisk når du installerer PostgreSQL. Denne brukeren er superbrukeren for PostgreSQL-forekomsten, og den tilsvarer MySQL-rotbrukeren.

For å logge på PostgreSQL-serveren som postgres-bruker først må du bytte til brukerpostgres og deretter få tilgang til en PostgreSQL-ledetekst ved hjelp av psql verktøyet:

sudo su - postgres psql

Herfra kan du samhandle med PostgreSQL-forekomsten. Slik går du ut av PostgreSQL-skalltypen:

\q

Du kan bruke sudo kommandoen for å få tilgang til PostgreSQL-ledeteksten uten å bytte brukere:

sudo -u postgres psql

postgres brukeren brukes vanligvis bare fra den lokale verten, og det anbefales ikke å angi passord for denne brukeren.

Opprette PostgreSQL rolle og database

Du kan opprette nye roller fra kommandolinjen ved hjelp av createuser kommandoen. 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. Lag en ny PostgreSQL-rolle

    Følgende kommando vil opprette en ny rolle som heter john:

    sudo su - postgres -c "createuser john"

    Lag en ny PostgreSQL-database

    Lag en ny database med navnet johndb ved å bruke kommandoen createb:

    sudo su - postgres -c "createdb johndb"

    Gi privilegier

    For å gi tillatelser til john brukeren i databasen vi opprettet i forrige trinn, kobler du til PostgreSQL-skallet:

    sudo -u postgres psql

    og kjør følgende spørsmål:

    grant all privileges on database johndb to john;

Aktiver ekstern tilgang til PostgreSQL-serveren

Som standard PostgreSQL lytter server bare på det lokale grensesnittet 127.0.0.1 . For å aktivere ekstern tilgang til PostgreSQL-serveren, åpner du konfigurasjonsfilen postgresql.conf og legger til listen_addresses = '*' i delen CONNECTIONS AND AUTHENTICATION .

sudo vim /etc/postgresql/9.6/main/postgresql.conf /etc/postgresql/9.6/main/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 service postgresql restart

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

Som du kan se fra utgangen over, hører PostgreSQL-serveren 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:

/etc/postgresql/9.6/main/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

Konklusjon

Du har lært hvordan du installerer og konfigurerer PostgreSQL på Debian 9-serveren. For mer informasjon om dette emnet, se PostgreSQL-dokumentasjonen.

debian postgresql-database