PostgreSQL 13 installeren en gebruiken op Rocky Linux
PostgreSQL is een vrij en open-source database management systeem dat zich richt op uitbreidbaarheid en SQL naleving. PostgreSQL is een geavanceerd en enterprise-class RDBMS (Relational Database Management System) dat zowel SQL (relationeel) als JSON (niet-relationeel) query’s ondersteunt.
Het is een zeer stabiel databasemanagement systeem dat ondersteund wordt door meer dan 20 jaar ontwikkeling door de open-source gemeenschap en onder ontwikkelaars en systeembeheerders een sterke reputatie heeft vanwege zijn betrouwbaarheid, flexibiliteit, robuustheid van functies, en prestaties.
PostgreSQL wordt gebruikt als primaire databank voor webtoepassingen, mobiele toepassingen, en analytische toepassingen. Enkele opmerkelijke PostgreSQL gebruikers over de hele wereld zijn Reddit, Skype, Instagram, Disqus, The Guardian, Yandex, Bloomberg, Nokia, BMW, enz.
In deze gids leer je hoe je de PostgreSQL databank op Rocky Linux installeert, hoe je de PostgreSQL databankinstallatie beveiligt, en hoe je PostgreSQL queries gebruikt om gebruikers en databases te beheren.
Vereisten
- Een Rocky Linux systeem.
- Een gebruiker met root of sudo rechten. Deze gebruiker zal gebruikt worden voor het installeren van nieuwe pakketten en het aanbrengen van wijzigingen in het hele systeem.
Toevoegen van de PostgreSQL Repository
Voor deze gids installeer je de laatste stabiele versie van PostgreSQL v13.4.Deze versie is beschikbaar op de officiële PostgreSQL repository, dus je moet de PostgreSQL repository toevoegen aan je Rocky Linux systeem.
1. Voeg de officiële PostgreSQL repository voor het Rocky Linux systeem toe door het volgende commando uit te voeren.
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2. Voer daarna het volgende commando uit om te controleren of de PostgreSQL repository op je systeem beschikbaar is.
sudo dnf -qy repolist
Als de PostgreSQL repository op je systeem beschikbaar is, zie je meerdere versies van PostgreSQL repositories zoals de schermafdruk hieronder.
PostgreSQL 13 installeren op Rocky Linux
Om PostgreSQL te kunnen installeren uit de officiële PostgreSQL repository (niet uit de Rocky Linux repository), moet je de ingebouwde PostgreSQL repository module uitschakelen.
1. Voer het onderstaande commando uit om de ingebouwde PostgreSQL module repository uit te schakelen.
sudo dnf module -qy disable postgresql
Het commando zal het DNF commando op stille modus uitvoeren en alle gpg sleutels(-qy optie) voor PostgreSQL repositories accepteren.
2. Installeer daarna de nieuwste versie van PostgreSQL 13.4 uit de PostgreSQL repository met het onderstaande dnf commando.
sudo dnf install postgresql13-server
Typ‘y‘ en druk op‘Enter‘ om PostgreSQL 13.x te installeren.
Wacht dan op de PostgreSQL installatie.
PostgreSQL Database Initialisatie
Vervolgens moet je, nadat de PostgreSQL installatie voltooid is, de PostgreSQL configuratie initialiseren en dan de PostgreSQL dienst starten en inschakelen.
1. Voer het volgende commando uit om de PostgreSQL database configuratie te initialiseren.
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
2. Start daarna de PostgreSQL dienst en schakel hem in met het onderstaande commando.
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13
Nu is de PostgreSQL dienst actief en draait, en hij zal automatisch draaien bij elke opstart.
3. Voer nu het onderstaande commando uit om de PostgreSQL dienst te verifiëren.
sudo systemctl status postgresql-13
Als je PostgreSQL dienst draait, zie je de groene uitvoer zoals “active(running)” zoals hieronder. Anders zie je de rode uitvoer zoals“failed” gevolgd door de foutmeldingslogs.
Beveiligen van de PostgreSQL installatie
Tijdens de installatie zal PostgreSQL een nieuwe systeemgebruiker en database gebruikersnaam aanmaken als“postgres“. En voor deze fase stel je een nieuw wachtwoord in voor de“postgres” gebruiker, zowel voor de systeemgebruiker als voor de database gebruiker.
1. Verander het wachtwoord voor de standaard systeemgebruiker“postgres” met het volgende commando.
passwd postgres
Typ nu het nieuwe wachtwoord voor de systeemgebruiker“postgres“.
2. Om vervolgens het wachtwoord voor de“postgres” database gebruiker te veranderen, moet je je aanmelden in de PostgreSQL shell.
Log eerst in als systeemgebruiker“postgres” met het volgende commando.
su - postgres
Log nu in op de PostgreSQL shell met het onderstaande psql commando.
psql
Voer de volgende query uit om een nieuw wachtwoord te maken voor de standaard“postgres” database gebruiker.
ALTER USER postgres WITH PASSWORD 'strongpostgrespassword';
Typ nu exit en druk op“Ctrl+d” om de“postgres” gebruikersshell te verlaten en uit te loggen.
Verander de authenticatie methode
Standaard zullen lokale PostgreSQL gebruikers verbinding maken met de PostgreSQL shell met de ‘peer’ methode. De peer authenticatie methode werkt alleen voor lokale verbindingen. In de ontwikkelomgeving kun je deze vorm van authenticatie gebruiken, maar voor productie kun je overwegen de wachtwoord-gebaseerde authenticatie methode te gebruiken.
Voor deze stap leer je hoe je de standaard peer authenticatie methode kunt veranderen in wachtwoord-authenticatie met‘scram-sha-256‘.
1. Log eerst in op de PostgreSQL shell met het volgende commando.
sudo -u postgres psql
Voer nu de volgende query uit om de locatie van de PostgreSQL configuratie‘pg_hba.conf‘ te controleren.
SHOW hba_file;
SHOW password_encryption;
Je ziet de uitvoer als hieronder.
Je ziet dat de PostgreSQL configuratie ‘pg_hba.conf’ zich in de‘/var/lib/pgsql/13/data‘ directory bevindt, en dat de standaard wachtwoordversleuteling voor PostgreSQL op RHEL gebaseerd besturingssysteem‘scram-sha-256‘ is.
Typ nu ‘\q’ om af te sluiten en de PostgreSQL shell te verlaten.
2. Verander vervolgens de werkdirectory in‘/var/lib/pgsql/13/data‘ en bewerk de configuratie‘pg_hba.conf‘ met nano editor.
cd /var/lib/pgsql/13/data/
nano pg_hba.conf
Onderaan de regel verander je de lokale authenticatie methode in‘scram-sha-256‘ zoals hieronder.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all scram-sha-256
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
Druk nu op‘Ctrl+x‘, typ‘y‘, en druk op‘Enter‘ om op te slaan en af te sluiten.
Met deze configuratie zal je om het wachtwoord gevraagd worden om in te loggen in de PostgreSQL shell.
3. Pas vervolgens de nieuwe configuratie toe door de PostgreSQL dienst opnieuw te starten met het volgende commando.
sudo systemctl restart postgresql-13
Telkens als je nu de PostgreSQL shell wilt benaderen, moet je het wachtwoord voor authenticatie intypen.
4. Om zeker te zijn van de configuratie van de wachtwoord authenticatie, log je in op de PostgreSQL shell met het volgende commando.
su - postgres
psql
Nu wordt je om een wachtwoord gevraagd voor de standaard gebruiker‘postgres‘.
Typ het wachtwoord voor de‘postgres‘ database gebruiker en druk op‘Enter‘. Als je wachtwoord juist is, zie je de PostgreSQL shell als volgt. Zo niet, dan zie je de‘FATAL‘ foutmelding omdat het wachtwoord onjuist is.
Je kunt ook het eenregelige commando gebruiken om in te loggen in de PostgreSQL shell zoals hieronder.
# Log in as default "postgres" user
sudo -u postgres psql
# Log in as another user
sudo -u postgres psql -U username
Nieuwe gebruiker en databank voor je toepassing maken
In dit stadium leer je hoe je een nieuwe gebruiker en database op PostgreSQL kunt aanmaken.
1. Log in op de PostgreSQL shell door het onderstaande commando uit te voeren.
sudo -u postgres psql
Typ nu het wachtwoord voor de PostgreSQL gebruiker‘postgres‘.
2. Voer de onderstaande PostgreSQL query uit om een nieuwe gebruiker ‘johndoe’ aan te maken met het wachtwoord ‘johndoestrongpassword’ en geef de gebruiker privileges voor het aanmaken van een nieuwe database en rol.
CREATE USER johndoe WITH
CREATEDB
CREATEROLE
PASSWORD 'johndoestrongpassword';
Verifieer daarna de nieuwe gebruiker met de volgende query.
\du
Nu zie je de nieuwe gebruiker ‘johndoe’ met de lijst van rollen‘Creëer rol‘ en‘Creëer DB‘ zoals hieronder.
3. Om vervolgens een nieuwe gebruikersdatabase op PostgreSQL te maken, voer je de volgende query uit.
CREATE DATABASE johndoe OWNER johndoe;
Controleer nu de nieuwe database met de volgende query.
\l
En je ziet de nieuwe database ‘johndoe’ met de eigenaar ‘johndoe’ zoals de schermafdruk hieronder.
Tabel maken en gegevens invoegen
Na het maken van een nieuwe database en gebruiker leer je hoe je een tabel kunt maken, gegevens kunt invoeren en gegevens uit de database kunt laten zien.
1. Meld je nu aan in de PostgreSQL shell als gebruiker ‘johndoe’ met het volgende commando.
su - postgres
psql -U johndoe
Of je kunt het eenregelige commando gebruiken zoals hieronder.
sudo -u postgres psql -U johndoe
Typ nu het wachtwoord voor PostgreSQL gebruiker‘johndoe‘ en druk op‘Enter‘ om in te loggen.
Zoals je op de schermafbeelding kunt zien, ben je nu ingelogd in de PostgreSQL shell bij de databank‘johndoe=>‘.
2. Voer nu de volgende query uit om een nieuwe tabel ‘users’ te maken met enkele kolommen ‘id, naam, leeftijd, adres, en salaris’.
CREATE TABLE users (
id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL,
address CHAR(50),
salary REAL
);
Om beschikbare tabellen op de huidige database te tonen, gebruik je de‘\d‘ query als‘describe‘ zoals hieronder.
\d
Om kolommen op de tabel te tonen, kun je dezelfde query gebruiken, gevolgd door de tabelnaam zoals hieronder.
\d users
Hieronder zie je de vergelijkbare uitvoer die je krijgt.
3. Voeg vervolgens nieuwe gegevens aan de tabel toe met de‘insert‘ query als hieronder.
INSERT INTO users (id,name,age,address,salary) VALUES (1, 'Paul', 32, 'California', 20000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (2, 'Jesse', 35, 'Mexico', 30000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (3, 'Linda', 27, 'Canada', 40000.00);
4. Daarna kun je alle beschikbare gegevens laten zien met de‘select‘ query zoals hieronder.
SELECT * FROM users;
De optie ‘*’ zal alle kolommen binnen de tabel dumpen.
Om de kolom te specificeren, kun je de ‘select‘ query gebruiken zoals hieronder.
SELECT name,age,salary FROM users;
Je krijgt een soortgelijke uitvoer te zien als hieronder.
Conclusie
Gefeliciteerd! Je hebt nu geleerd hoe je PostgreSQL op Rocky Linux kunt installeren. Ook heb je geleerd hoe je PostgreSQL op een veilige manier (minimaal) kunt inzetten, en het basisgebruik van PostgreSQL queries voor het beheer van gebruikers, databases, en tabellen.