custom background image

Hoe installeer je een PostgreSQL-database op CentOS 7?


Installeer een PostgreSQL-database op CentOS 7

Doel

PostgreSQL is een van de bekendste databases ter wereld. De gebruiksvriendelijkheid ervan en de Open Source-benadering zijn belangrijke punten bij het wijdverbreide gebruik ervan. Voor meer informatie en de mogelijkheden van PostgreSQL verwijzen we naar de officiële documentatie.

In deze tutorial leert u hoe u een PostgreSQL-database installeert op een CentOS 7 Linux-distributie.

 

Vereisten

In deze tutorial wordt ervan uitgegaan dat u CentOS 7 heeft, dat bijvoorbeeld in een OVHcloud Compute-instance draait, en dat u enige basiskennis heeft van hoe u het moet gebruiken. Als u geen actieve Centos 7 heeft, volg dan de handleiding om een OVHcloud Compute Instance te gebruiken.

 

Instructies

In deze tutorial installeert u eerst een PostgreSQL-database en vervolgens maakt u er een database op aan.

 

De PostgreSQL-database installeren

Bij het schrijven van deze tutorial is de laatste LTS-versie van PostgreSQL 14.x. Zie de downloadsectie van de officiële documentatie voor oudere of nieuwere versies.

Zorg er eerst voor dat uw systeem up-to-date is:

sudo yum update

Installeer de repository RPM:

# Install the repository RPM: sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

De output zou als volgt moeten zijn:

$ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Modules complémentaires chargés : fastestmirror
pgdg-redhat-repo-latest.noarch.rpm                       | 8.1 kB     00:00
Examen de /var/tmp/yum-root-4xEZ6S/pgdg-redhat-repo-latest.noarch.rpm : pgdg-redhat-repo-42.0-24.noarch
Sélection de /var/tmp/yum-root-4xEZ6S/pgdg-redhat-repo-latest.noarch.rpm pour installation
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet pgdg-redhat-repo.noarch 0:42.0-24 sera installé
--> Résolution des dépendances terminée

Dépendances résolues

================================================================================
 Package            Architecture
                             Version    Dépôt                             Taille
================================================================================
Installation :
 pgdg-redhat-repo   noarch   42.0-24    /pgdg-redhat-repo-latest.noarch    11 k

Résumé de la transaction
================================================================================
Installation   1 Paquet

Taille totale  : 11 k
Taille d'installation : 11 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installation : pgdg-redhat-repo-42.0-24.noarch                            1/1
  Vérification : pgdg-redhat-repo-42.0-24.noarch                            1/1

Installé :
  pgdg-redhat-repo.noarch 0:42.0-24

Terminé !

Installeer nu PostgreSQL:

sudo yum install -y postgresql14-server

$ sudo yum install -y postgresql14-server
Modules complémentaires chargés : fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirrors.proxad.net
 * extras: centos.mirrors.proxad.net
 * updates: centos.mirrors.proxad.net
pgdg-common/7/x86_64/signature                           |  198 B     00:00
Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importation de la clef GPG 0x442DF0F8 :
ID utilisateur : « PostgreSQL RPM Building Project  »
Empreinte      : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Paquet         : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch)
Provient de    : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg-common/7/x86_64/signature                           | 2.9 kB     00:00 !!!
pgdg10/7/x86_64/signature                                |  198 B     00:00
Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importation de la clef GPG 0x442DF0F8 :
ID utilisateur : « PostgreSQL RPM Building Project  »
Empreinte      : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Paquet         : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch)
Provient de    : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg10/7/x86_64/signature                                | 3.6 kB     00:00 !!!
pgdg11/7/x86_64/signature                                |  198 B     00:00
Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importation de la clef GPG 0x442DF0F8 :
ID utilisateur : « PostgreSQL RPM Building Project  »
Empreinte      : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Paquet         : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch)
Provient de    : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg11/7/x86_64/signature                                | 3.6 kB     00:00 !!!
pgdg12/7/x86_64/signature                                |  198 B     00:00
Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importation de la clef GPG 0x442DF0F8 :
ID utilisateur : « PostgreSQL RPM Building Project  »
Empreinte      : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Paquet         : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch)
Provient de    : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg12/7/x86_64/signature                                | 3.6 kB     00:00 !!!
pgdg13/7/x86_64/signature                                |  198 B     00:00
Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importation de la clef GPG 0x442DF0F8 :
ID utilisateur : « PostgreSQL RPM Building Project  »
Empreinte      : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Paquet         : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch)
Provient de    : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg13/7/x86_64/signature                                | 3.6 kB     00:00 !!!
pgdg14/7/x86_64/signature                                |  198 B     00:00
Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importation de la clef GPG 0x442DF0F8 :
ID utilisateur : « PostgreSQL RPM Building Project  »
Empreinte      : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Paquet         : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch)
Provient de    : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg14/7/x86_64/signature                                | 3.6 kB     00:00 !!!
(1/11): pgdg11/7/x86_64/group_gz                           |  245 B   00:00
(2/11): pgdg10/7/x86_64/group_gz                           |  245 B   00:00
(3/11): pgdg12/7/x86_64/group_gz                           |  245 B   00:00
(4/11): pgdg13/7/x86_64/group_gz                           |  246 B   00:00
(5/11): pgdg-common/7/x86_64/primary_db                    | 162 kB   00:00
(6/11): pgdg10/7/x86_64/primary_db                         | 371 kB   00:01
(7/11): pgdg14/7/x86_64/group_gz                           |  244 B   00:00
(8/11): pgdg11/7/x86_64/primary_db                         | 400 kB   00:01
(9/11): pgdg14/7/x86_64/primary_db                         |  98 kB   00:00
(10/11): pgdg12/7/x86_64/primary_db                        | 277 kB   00:00
(11/11): pgdg13/7/x86_64/primary_db                        | 181 kB   00:00
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet postgresql14-server.x86_64 0:14.2-1PGDG.rhel7 sera installé
--> Traitement de la dépendance : postgresql14-libs(x86-64) = 14.2-1PGDG.rhel7 pour le paquet : postgresql14-server-14.2-1PGDG.rhel7.x86_64
--> Traitement de la dépendance : postgresql14(x86-64) = 14.2-1PGDG.rhel7 pour le paquet : postgresql14-server-14.2-1PGDG.rhel7.x86_64
--> Traitement de la dépendance : libpq.so.5()(64bit) pour le paquet : postgresql14-server-14.2-1PGDG.rhel7.x86_64
--> Traitement de la dépendance : libicuuc.so.50()(64bit) pour le paquet : postgresql14-server-14.2-1PGDG.rhel7.x86_64
--> Traitement de la dépendance : libicui18n.so.50()(64bit) pour le paquet : postgresql14-server-14.2-1PGDG.rhel7.x86_64
--> Lancement de la transaction de test
---> Le paquet libicu.x86_64 0:50.2-4.el7_7 sera installé
---> Le paquet postgresql14.x86_64 0:14.2-1PGDG.rhel7 sera installé
---> Le paquet postgresql14-libs.x86_64 0:14.2-1PGDG.rhel7 sera installé
--> Résolution des dépendances terminée

Dépendances résolues

================================================================================
 Package                  Architecture
                                      Version                 Dépôt       Taille
================================================================================
Installation :
 postgresql14-server      x86_64      14.2-1PGDG.rhel7        pgdg14      5.5 M
Installation pour dépendances :
 libicu                   x86_64      50.2-4.el7_7            base        6.9 M
 postgresql14             x86_64      14.2-1PGDG.rhel7        pgdg14      1.5 M
 postgresql14-libs        x86_64      14.2-1PGDG.rhel7        pgdg14      267 k

Résumé de la transaction
================================================================================
Installation   1 Paquet (+3 Paquets en dépendance)

Taille totale des téléchargements : 14 M
Taille d'installation : 55 M
Downloading packages:
(1/4): libicu-50.2-4.el7_7.x86_64.rpm                      | 6.9 MB   00:00
warning: /var/cache/yum/x86_64/7/pgdg14/packages/postgresql14-libs-14.2-1PGDG.rhel7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
La clé publique pour postgresql14-libs-14.2-1PGDG.rhel7.x86_64.rpm n'est pas installée
(2/4): postgresql14-libs-14.2-1PGDG.rhel7.x86_64.rpm       | 267 kB   00:01
(3/4): postgresql14-14.2-1PGDG.rhel7.x86_64.rpm            | 1.5 MB   00:01
(4/4): postgresql14-server-14.2-1PGDG.rhel7.x86_64.rpm     | 5.5 MB   00:00
--------------------------------------------------------------------------------
Total                                              7.5 MB/s |  14 MB  00:01
Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importation de la clef GPG 0x442DF0F8 :
ID utilisateur : « PostgreSQL RPM Building Project  »
Empreinte      : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Paquet         : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch)
Provient de    : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installation : postgresql14-libs-14.2-1PGDG.rhel7.x86_64                  1/4
  Installation : libicu-50.2-4.el7_7.x86_64                                 2/4
  Installation : postgresql14-14.2-1PGDG.rhel7.x86_64                       3/4
  Installation : postgresql14-server-14.2-1PGDG.rhel7.x86_64                4/4
  Vérification : libicu-50.2-4.el7_7.x86_64                                 1/4
  Vérification : postgresql14-libs-14.2-1PGDG.rhel7.x86_64                  2/4
  Vérification : postgresql14-server-14.2-1PGDG.rhel7.x86_64                3/4
  Vérification : postgresql14-14.2-1PGDG.rhel7.x86_64                       4/4

Installé :
  postgresql14-server.x86_64 0:14.2-1PGDG.rhel7

Dépendances installées :
  libicu.x86_64 0:50.2-4.el7_7
  postgresql14.x86_64 0:14.2-1PGDG.rhel7
  postgresql14-libs.x86_64 0:14.2-1PGDG.rhel7

Terminé !

Initialiseer de database en schakel automatische starten in:

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb sudo systemctl enable postgresql-14 sudo systemctl start postgresql-14

Daarna kunt u uw nieuwe installatie testen:

sudo su - postgres psql

De output zou als volgt moeten zijn:

$ sudo su - postgres
-bash-4.2$ psql
psql (14.2)
Type "help" for help.

postgres=# exit
-bash-4.2$ exit
$

Let op: de installatie van PostgreSQL maakt standaard een postgres-account aan. Dit account is een superuser-account voor de database. Wees voorzichtig wanneer u het gebruikt. De volgende hoofdstukken leggen uit hoe u standaardgebruikers kunt creëren.

 

Gebruiker aan PostgreSQL toevoegen

Er zijn twee manieren om een gebruiker toe te voegen in PostgreSQL: met SQL-query's of met een opdracht in bash. In deze tutorial gebruiken we alleen de SQL-manier, omdat deze uitgebreider is. Zie de officiële documentatie voor meer informatie over het gebruik van de methode met een commando. U moet het standaardaccount van postgres en de CLI van psql gebruiken om uw nieuwe account te maken (bekijk eerst hoe u verbinding maakt met psql).

Het eerste dat u moet doen, is het creëren van een “role” (een soort combinatie van gebruikers en rechten in de PostgreSQL-wereld):

postgres=# CREATE USER foo WITH PASSWORD 'bar';

De output zou als volgt moeten zijn:

postgres=# CREATE USER foo WITH PASSWORD 'bar';
CREATE ROLE
postgres=#

 

Een database aanmaken

Maak vervolgens een database ‘example’ met gebruiker ‘foo’ als eigenaar:

postgres=# CREATE DATABASE example OWNER foo;
CREATE DATABASE
postgres=#

Vervolgens moet u een equivalente Linux-gebruiker aanmaken om uw nieuwe gebruiker te kunnen gebruiken (root privilege is verplicht voor dit soort opdrachten):

$ sudo adduser foo

De output zou als volgt moeten zijn:

$ sudo su -
Dernière connexion : jeudi 12 mai 2022 à 09:42:40 UTC sur pts/0
# adduser foo
# exit
$

Dan kunt u uw nieuwe account testen:

sudo su - foo psql -d example

De output zou als volgt moeten zijn:

$ sudo su - foo
Dernière connexion : jeudi 12 mai 2022 à 10:09:42 UTC sur pts/0
$ psql -d example
psql (14.2)
Type "help" for help.

example=>

U kunt een lijst met databases opvragen om te testen of het aanmaken gelukt is:

postgres=# \l

De output zou als volgt moeten zijn:

postgres=# \l
example=> \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 example   | foo      | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)

 

Een tabel maken en gebruiken

Nu kunt u lijsten creëren en deze gebruiken.

Gebruik de eerder aangemaakte foo-gebruiker voor de volgende opdrachten.

example=> CREATE TABLE first_table (id INT PRIMARY KEY NOT NULL, column1 CHAR(50));

De output zou als volgt moeten zijn:

example=> CREATE TABLE first_table (id INT PRIMARY KEY NOT NULL, column1 CHAR(50));
CREATE TABLE
example=> 

Nu kunt u de first_table in SQL-query’s gebruiken:

example=> INSERT INTO first_table (id, column1) VALUES (1, 'example'); example=> SELECT * FROM first_table;

De output zou als volgt moeten zijn:

example=> INSERT INTO first_table (id, column1) VALUES (1, 'example');
INSERT 0 1

example=> SELECT * FROM first_table;
 id |                      column1                       
----+----------------------------------------------------
  1 | example                                           
(1 row)

Dat is alles. U heeft met succes een PostgreSQL-database op CentOS 7 geïnstalleerd en geconfigureerd.

Verdere stappen

Bekijk de producten voor PostgreSQL managed database en public cloud-instance op OVHcloud.