Android

Postgresql installeren op Centos 8

How to Install PostgreSQL 12 on CentOS 8 RHEL 8

How to Install PostgreSQL 12 on CentOS 8 RHEL 8

Inhoudsopgave:

Anonim

PostgreSQL of Postgres is een open-source object-relationeel databasebeheersysteem voor algemene doeleinden met veel geavanceerde functies waarmee u fouttolerante omgevingen of complexe applicaties kunt bouwen.

In deze handleiding bespreken we hoe u de PostgreSQL-databaseserver op CentOS 8 installeert. Controleer voordat u kiest welke versie u wilt installeren of uw toepassingen deze ondersteunen.

We zullen ook de basis van PostgreSQL databasebeheer verkennen.

voorwaarden

Om pakketten te kunnen installeren, moet je ingelogd zijn als root of gebruiker met sudo-rechten.

PostgreSQL installeren op CentOS 8

Op het moment dat dit artikel werd geschreven, zijn er twee versies van PostgreSQL-server beschikbaar voor installatie vanuit de standaard CentOS-opslagplaatsen: versie 9.6 en 10.0.

Typ het volgende om de beschikbare streams van de PostgreSQL-module weer te geven:

dnf module list postgresql

De output laat zien dat de postgresql-module beschikbaar is met twee streams. Elke stream heeft twee profielen: server en client. Stream 10 met de profielserver is de standaardinstelling:

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. Om de standaard stream te installeren, type PostgreSQL-server versie 10.0:

    sudo dnf install @postgresql:10

    Om de PostgreSQL-server versie 9.6 te installeren:

    sudo dnf install @postgresql:9.6

Misschien wilt u ook het contrib-pakket installeren dat verschillende extra functies voor de PostgreSQL-database biedt:

sudo dnf install postgresql-contrib

Nadat de installatie is voltooid, initialiseert u de PostgreSQL-database met de volgende opdracht:

sudo postgresql-setup initdb

Initializing database… OK

Start de PostgreSQL-service en schakel deze in om op te starten:

sudo systemctl enable --now postgresql

Gebruik de psql tool om de installatie te verifiëren door verbinding te maken met de PostgreSQL-databaseserver en de versie af te drukken:

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-rollen en verificatiemethoden

PostgreSQL behandelt de toegangsrechten van de database met behulp van het concept van rollen. Een rol kan een database-gebruiker of een groep database-gebruikers vertegenwoordigen.

PostgreSQL ondersteunt meerdere authenticatiemethoden. De meest gebruikte methoden zijn:

  • Vertrouwen - Een rol kan verbinding maken zonder wachtwoord, zolang aan de voorwaarden 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). Identiek - Alleen ondersteund op 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 standaard ingesteld om de peer-authenticatiemethode te gebruiken.

De postgres gebruiker wordt automatisch gemaakt wanneer u de PostgreSQL-server installeert. Deze gebruiker is de superuser voor de PostgreSQL-instantie. Het is gelijk aan de MySQL-rootgebruiker.

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

sudo su - postgres psql

Vanaf hier kunt u communiceren met de PostgreSQL-instantie. Typ het volgende om de PostgreSQL-shell te verlaten:

\q

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

sudo -u postgres psql

Doorgaans wordt de postgres gebruiker alleen van de localhost gebruikt.

PostgreSQL-rol en database maken

Alleen superusers en rollen met CREATEROLE rechten kunnen nieuwe rollen maken.

In het volgende voorbeeld maken we een nieuwe rol met de naam john , een database met de naam johndb en verlenen we privileges voor de database.

  1. Maak eerst verbinding met de PostgreSQL-shell:

    sudo -u postgres psql

    Maak een nieuwe PostgreSQL-rol met behulp van de volgende opdracht:

    create role john;

    Maak een nieuwe database:

    create database johndb;

    Verleen rechten aan de gebruiker in de database door de volgende query uit te voeren:

    grant all privileges on database johndb to john;

Schakel externe toegang tot de PostgreSQL-server in

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

Om externe toegang tot uw PostgreSQL-server in te schakelen, opent u het configuratiebestand:

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

Blader naar beneden naar het gedeelte CONNECTIONS AND AUTHENTICATION en voeg de volgende regel toe / bewerk deze:

/var/lib/pgsql/data/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 met:

sudo systemctl restart postgresql

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

Bovenstaande uitvoer laat zien dat de PostgreSQL-server luistert naar de standaardpoort op alle interfaces (0.0.0.0).

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

Hieronder volgen enkele voorbeelden van verschillende gebruiksscenario's:

/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

Conclusie

CentOS 8 biedt twee PostgreSQL-versies: 9.6 en 10.0.

Bezoek de PostgreSQL-documentatie voor meer informatie over dit onderwerp

centos postgresql-database