Android

Postgresql installeren op Centos 7

Install Postgres on Centos 7

Install Postgres on Centos 7

Inhoudsopgave:

Anonim

PostgreSQL of Postgres is een open source object-relationeel databasebeheersysteem voor algemene doeleinden met veel geavanceerde functies waarmee u complexe webtoepassingen kunt maken.

In deze zelfstudie laten we u twee verschillende methoden zien voor het installeren van PostgreSQL op uw CentOS 7-machine. De eerste methode leidt u door de stappen die nodig zijn om PostgreSQL v9.2.23 te installeren vanuit de CentOS-repositories, terwijl de tweede u laat zien hoe u de nieuwste versie van PostgreSQL installeert vanuit de officiële PostgreSQL-repositories.

Als uw toepassing niet de nieuwste versie vereist, raden we u aan de eerste methode te gebruiken en PostgreSQL te installeren vanuit de CentOS-opslagplaatsen.

We zullen ook de basisprincipes van PostgreSQL databasebeheer verkennen.

voorwaarden

Zorg ervoor dat u bent aangemeld als een gebruiker met sudo-rechten voordat u doorgaat met deze zelfstudie.

Installeer PostgreSQL vanuit de CentOS-opslagplaatsen

Op het moment dat dit artikel wordt geschreven, is PostgreSQL versie 9.2.23 de nieuwste versie van PostgreSQL die beschikbaar is via de CentOS-repositories.

Volg de onderstaande stappen om PostgreSQL op uw CentOS-server te installeren:

  1. PostgreSQL installeren

    Om de PostgreSQL-server te installeren samen met het PostgreSQL-contrib-pakket dat verschillende extra functies voor de PostgreSQL-database biedt, typt u eenvoudig:

    sudo yum install postgresql-server postgresql-contrib

    Database initialiseren

    Initialiseer de PostgreSQL-database met de volgende opdracht:

    sudo postgresql-setup initdb

    Initializing database… OK

    PostgreSQL starten

    Om de PostgreSQL-service te starten en tijdens het opstarten te starten, typt u:

    sudo systemctl start postgresql sudo systemctl enable postgresql

    Installatie van PostgreSQL verifiëren

    Om de installatie te verifiëren zullen we proberen verbinding te maken met de PostgreSQL-databaseserver met behulp van de psql tool en de serverversie afdrukken:

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

    PostgreSQL 9.2.23 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit (1 row)

Psql is een interactief opdrachtregelprogramma waarmee we kunnen communiceren met de PostgreSQL-server.

Installeer PostgreSQL vanuit de PostgreSQL-opslagplaatsen

Op het moment dat dit artikel wordt geschreven, is PostgreSQL versie 10.4 de nieuwste versie van PostgreSQL die beschikbaar is via de officiële PostgreSQL-opslagplaatsen. Voordat u doorgaat met de volgende stap, moet u de pagina Yum Repository van PostgreSQL bezoeken en controleren of er een nieuwe versie beschikbaar is.

Volg de onderstaande stappen om de nieuwste PostgreSQL-versie op uw CentOS-server te installeren:

  1. PostgreSQL-repository inschakelen

    Om de PostgreSQL-repository in te schakelen, installeert u eenvoudig het repository- rpm bestand:

    sudo yum install

    PostgreSQL installeren

    Nadat de repository is ingeschakeld, installeert u de PostgreSQL-server en PostgreSQL-contribpakketten met:

    sudo yum install postgresql10-server postgresql10-contrib

    Database initialiseren

    Om het PostgreSQL-database-type te initialiseren:

    sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

    Initializing database… OK

    PostgreSQL starten

    Om de PostgreSQL-service te starten en in te schakelen bij het opstarten:

    sudo systemctl start postgresql-10 sudo systemctl enable postgresql-10

    Installatie van PostgreSQL verifiëren

    Om de installatie te verifiëren zullen we proberen verbinding te maken met de PostgreSQL-databaseserver met behulp van de psql tool en de serverversie afdrukken:

    sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"

    PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit (1 row)

PostgreSQL-rollen en verificatiemethoden

Toegangsrechten voor databases binnen PostgreSQL worden afgehandeld met 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 - Met deze methode kan de rol 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). Identiek - Deze methode wordt 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 PostgreSQL installeert. 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 de postgres-gebruiker moet u eerst overschakelen naar de postgres van de gebruiker en vervolgens toegang krijgen tot de PostgreSQL-prompt met behulp van het psql hulpprogramma:

sudo su - postgres psql

Vanaf hier kunt u communiceren met uw PostgreSQL-exemplaar. 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

De postgres gebruiker wordt meestal alleen gebruikt door de lokale host en het wordt afgeraden het wachtwoord voor deze gebruiker in te stellen.

Als u PostgreSQL versie 10 vanuit de officiële PostgreSQL-repositories hebt geïnstalleerd, moet u het volledige pad naar de psql binary gebruiken, namelijk /usr/pgsql-10/bin/psql .

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 verbinding met de PostgreSQL Shell

    sudo -u postgres psql

    Maak een nieuwe PostgreSQL-rol

    De volgende opdracht maakt een nieuwe rol met de naam john:

    create role john;

    Maak een nieuwe PostgreSQL-database

    Maak een nieuwe database met de naam johndb met de opdracht createdb :

    create database johndb;

    Bevoegdheden verlenen

    Voer de volgende query uit om machtigingen te verlenen aan de john gebruiker voor de database die we in de vorige stap hebben gemaakt:

    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 postgresql.conf en voegt u listen_addresses = '*' in het gedeelte CONNECTIONS AND AUTHENTICATION .

sudo vim /var/lib/pgsql/data/postgresql.conf Als u PostgreSQL versie 10 gebruikt, is het pad naar het bestand /var/lib/pgsql/10/data/postgresql.conf ./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 Als u PostgreSQL versie 10 gebruikt, start u de PostgreSQL-service opnieuw met systemctl restart postgresql-10 .

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

Zoals u aan de uitvoer hierboven kunt zien, luistert de PostgreSQL-server 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 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 Als u PostgreSQL versie 10 gebruikt, is het volledige pad naar het bestand /var/lib/pgsql/10/data/pg_hba.conf .

Conclusie

U hebt geleerd hoe u PostgreSQL op uw CentOS 7-server installeert en configureert.

U kunt de PostgreSQL-documentatie raadplegen voor meer informatie over dit onderwerp.

centos postgresql-database