Android

Hur man installerar postgresql på debian 9

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

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

Innehållsförteckning:

Anonim

PostgreSQL, ofta känd helt enkelt som Postgres, är ett öppet källkodsobjektrelativt databashanteringssystem. PostgreSQL har många avancerade funktioner som online-säkerhetskopior, punktåterställning, kapslade transaktioner, SQL- och JSON-frågeställningar, MVCC-kontroll med flera versioner, asynkron replikering och mer.

I den här tutorialen visar vi dig hur du installerar PostgreSQL på Debian 9 och utforskar grunderna i grundläggande databasadministration.

förutsättningar

Innan du fortsätter med den här självstudien, se till att användaren du är inloggad som har sudo-behörigheter.

Installera PostgreSQL

Vid skrivandet av denna artikel är den senaste versionen av PostgreSQL som finns tillgänglig från Debian-lagringarna PostgreSQL version 9.6.

Följ följande steg för att installera PostgreSQL på din Debian-server:

  1. Börja med att uppdatera det lokala paketindexet:

    sudo apt update

    Installera PostgreSQL-servern och PostgreSQL contrib-paketet som ger ytterligare funktioner för PostgreSQL-databasen:

    sudo apt install postgresql postgresql-contrib

    När installationen är klar startar PostgreSQL-tjänsten automatiskt. För att verifiera installationen kommer vi att ansluta till PostgreSQL-databasservern med hjälp av psql verktyget och skriva ut serverversionen:

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

    Utgången ser ut så här:

    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 är ett interaktivt terminalprogram som låter dig interagera med PostgreSQL-servern.

PostgreSQL-roller och autentiseringsmetoder

PostgreSQL hanterar behörigheter 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 ett antal autentiseringsmetoder. De vanligaste metoderna är:

  • Förtroende - Med denna metod kan rollen ansluta utan lösenord, så länge kriterierna 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 - Den här metoden stöds endast på TCP / IP-anslutningar. Fungerar med att skaffa klientens användarnamn med 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. Den här användaren är superanvändaren för PostgreSQL-instansen och motsvarar MySQL-rootanvändaren.

För att logga in på PostgreSQL-servern som postgres-användare måste du först byta till användarens postgres och sedan kan du komma åt en PostgreSQL-promp med hjälp av psql verktyget:

sudo su - postgres psql

Härifrån kan du interagera med din PostgreSQL-instans. För att avsluta PostgreSQL-skaltypen:

\q

Du kan använda sudo kommandot för att komma åt PostgreSQL-prompten utan att byta användare:

sudo -u postgres psql

postgres användaren används vanligtvis endast från den lokala värden och det rekommenderas att inte ställa in lösenordet för den här användaren.

Skapa PostgreSQL-roll och databas

Du kan skapa nya roller från kommandoraden med hjälp av kommandot createuser . 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. Skapa en ny PostgreSQL-roll

    Följande kommando skapar en ny roll med namnet john:

    sudo su - postgres -c "createuser john"

    Skapa en ny PostgreSQL-databas

    Skapa en ny databas med namnet johndb med kommandot createdb :

    sudo su - postgres -c "createdb johndb"

    Bevilja privilegier

    För att ge behörigheter till john användaren i databasen som vi skapade i föregående steg ansluter du till PostgreSQL-skalet:

    sudo -u postgres psql

    och kör följande fråga:

    grant all privileges on database johndb to john;

Aktivera fjärråtkomst till PostgreSQL-servern

Som standard lyssnar servern bara på det lokala gränssnittet 127.0.0.1 . För att aktivera fjärråtkomst till din PostgreSQL-server öppnar du konfigurationsfilen postgresql.conf och lägger till listen_addresses = '*' i avsnittet 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;

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

sudo service postgresql restart

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

Som du kan se från utgången ovan lyssnar PostgreSQL-servern 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:

/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

Slutsats

Du har lärt dig hur du installerar och konfigurerar PostgreSQL på din Debian 9-server. Mer information om detta ämne finns i PostgreSQL-dokumentationen.

debian postgresql-databas