Android

Hoe postgresql op debian 10 te installeren

How to Install and configuration PostgreSQL on Ubuntu Linux

How to Install and configuration PostgreSQL on Ubuntu Linux

Inhoudsopgave:

Anonim

PostgreSQL, vaak simpelweg bekend als Postgres, is een open-source algemeen object-relationeel databasebeheersysteem. Het heeft veel krachtige functies zoals online back-ups, point-in-time herstel, geneste transacties, SQL- en JSON-query's, multi-versie concurrency control (MVCC), asynchrone replicatie en meer.

Deze zelfstudie leidt u door de stappen van het installeren van de PostgreSQL-databaseserver op Debian 10. We zullen ook de basisprincipes van basisdatabasebeheer verkennen.

PostgreSQL installeren

Op het moment dat dit artikel wordt geschreven, is PostgreSQL versie 11.5 de nieuwste versie van PostgreSQL die beschikbaar is in de standaard Debian-repositories.

Om PostgreSQL op uw Debian-server te installeren, voert u de volgende stappen uit als root of gebruiker met sudo-rechten:

  1. Begin met het bijwerken van de APT-pakketindex:

    sudo apt update

    Installeer het PostgreSQL-server- en contrib-pakket dat extra functies biedt voor de PostgreSQL-database:

    sudo apt install postgresql postgresql-contrib

    Nadat de installatie is voltooid, wordt de PostgreSQL-service gestart. Om de installatie te verifiëren, gebruikt u de psql tool om de serverversie af te drukken:

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

    De uitvoer moet er ongeveer zo uitzien:

    PostgreSQL 11.5 (Debian 11.5-1+deb10u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit

psql is een interactief terminalprogramma waarmee u kunt communiceren met de PostgreSQL-server.

PostgreSQL-rollen en verificatiemethoden

PostgreSQL verwerkt toegangsrechten voor databases met het concept van rollen. Afhankelijk van hoe u de rol instelt, kan deze een databasegebruiker of een groep databasegebruikers vertegenwoordigen.

PostgreSQL ondersteunt verschillende authenticatiemethoden. De meest gebruikte methoden zijn:

  • Vertrouwen - Een rol kan verbinding maken zonder wachtwoord, zolang aan de criteria is voldaan die zijn gedefinieerd in pg_hba.conf Wachtwoord - Een rol kan verbinding maken door een wachtwoord op te geven. De wachtwoorden kunnen worden opgeslagen als scram-sha-256 md5 en password (clear-text) Ident - Alleen ondersteund voor TCP / IP-verbindingen. Het werkt door de gebruikersnaam van het besturingssysteem van de client te verkrijgen, met een optionele toewijzing van een gebruikersnaam. Peer - Idem als Ident, maar het wordt alleen ondersteund op lokale verbindingen.

PostgreSQL-clientverificatie wordt gedefinieerd in het configuratiebestand met de naam pg_hba.conf . Voor lokale verbindingen is PostgreSQL ingesteld om de peer-authenticatiemethode te gebruiken.

De "postgres" -gebruiker wordt automatisch aangemaakt wanneer PostgreSQL wordt geïnstalleerd. Deze gebruiker is de superuser voor de PostgreSQL-instantie en is gelijk aan de MySQL-rootgebruiker.

Om in te loggen op de PostgreSQL-server als "postgres", schakelt u over naar de postgres van de gebruiker en opent u een PostgreSQL-prompt met behulp van het hulpprogramma psql :

sudo su - postgres psql

Vanaf hier kunt u communiceren met de PostgreSQL-server. Om het PostgreSQL-shell-type te verlaten:

\q

U kunt de opdracht sudo gebruiken om toegang te krijgen tot de PostgreSQL-prompt zonder van gebruiker te wisselen:

sudo -u postgres psql

De postgres gebruiker wordt meestal alleen van de localhost gebruikt.

PostgreSQL-rol en database maken

Met de opdracht createuser kunt u nieuwe rollen maken vanaf de opdrachtregel. Alleen superusers en rollen met CREATEROLE rechten kunnen nieuwe rollen maken.

In het volgende voorbeeld maken we een nieuwe rol met de naam kylo , een database met de naam kylodb en verlenen we rechten aan de database voor de rol.

  1. Maak eerst de rol door de volgende opdracht te geven:

    sudo su - postgres -c "createuser kylo"

    Maak vervolgens de database met de opdracht createdb :

    sudo su - postgres -c "createdb kylodb"

    Als u machtigingen wilt verlenen aan de gebruiker in de database, maakt u verbinding met de PostgreSQL-shell:

    sudo -u postgres psql

    Voer de volgende query uit:

    grant all privileges on database kylodb to kylo;

Schakel externe toegang tot de PostgreSQL-server in

Standaard luistert de PostgreSQL-server alleen op de lokale interface 127.0.0.1 .

Open het configuratiebestand postgresql.conf en voeg listen_addresses = '*' in het gedeelte CONNECTIONS AND AUTHENTICATION . Hiermee geeft u de server de instructie om op alle netwerkinterfaces te luisteren.

sudo nano /etc/postgresql/11/main/postgresql.conf /etc/postgresql/11/main/postgresql.conf

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

Sla het bestand op en start de PostgreSQL-service opnieuw om de wijzigingen door te voeren:

sudo service postgresql restart

Controleer de wijzigingen met het hulpprogramma ss :

ss -nlt | grep 5432

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

Uit de uitvoer moet blijken dat de PostgreSQL-server op alle interfaces luistert (0.0.0.0).

De laatste stap is het configureren van de server om externe aanmeldingen te accepteren door het bestand pg_hba.conf bewerken.

Hieronder volgen enkele voorbeelden van verschillende gebruiksscenario's:

/etc/postgresql/11/main/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD # The user jane will be able to access all databases from all locations using an 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 an 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

Conclusie

We hebben u laten zien hoe u PostgreSQL installeert en configureert op Debian 10. Raadpleeg de PostgreSQL-documentatie voor meer informatie over dit onderwerp.

debian postgresql-database