PostgreSQL est un système de gestion de base de données relationnelle objet libre et open source. L'objectif de ce tutoriel est d'effectuer une installation et une configuration de base du serveur PostgreSQL sur le serveur Linux RHEL 8 / CentOS 8.
Dans ce didacticiel, vous apprendrez :
- Comment installer le serveur de base de données PostgreSQL sur RHEL 8/CentOS 8
- Comment démarrer et activer le serveur de base de données PostgreSQL
- Comment accéder à la base de données PostgreSQL à partir d'un hôte local et d'un emplacement distant
- Comment définir un mot de passe pour le
postgres
par défaut utilisateur - Comment activer PostgreSQL pour écouter sur tous les réseaux
- Comment sécuriser la connexion à distance PostgreSQL avec l'authentification par mot de passe MD5
- Comment ouvrir le port du pare-feu PostgreSQL
- Comment établir une connexion à distance au serveur PostgreSQL en utilisant
psql
client
Initialisation et accès à la base de données PostgreSQL sur Red Hat Enterprise Linux 8
Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | RHEL 8/CentOS 8 |
Logiciel | PostgreSQL Server 10.5-1.el8 |
Autre | Accès privilégié à votre système Linux en tant que root ou via le sudo commande. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Instructions pas à pas pour l'installation locale de PostgreSQL et l'accès à la base de données
- Installez le serveur PostreSQL. Exécutez le
dnf
ci-dessous commande pour effectuer une installation de package de serveur PostreSQL :# dnf install postgresql-server
- Initialiser la base de données PostgreSQL :
# postgresql-setup --initdb --unit postgresql * Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
- Démarrez PostgreSQL et activez-le éventuellement après le redémarrage.
# systemctl start postgresql # systemctl enable postgresql
À ce stade, le serveur PostreSQL devrait être opérationnel et écouter sur le port localhost
5432
. Utilisezss
commande pour confirmer que c'est le cas :$ ss -nlt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:111 0.0.0.0:* LISTEN 0 32 192.168.122.1:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* LISTEN 0 128 [::]:111 [::]:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 128 [::1]:5432 [::]:*
- Accéder à la base de données PostreSQL. Lorsque vous installez la base de données PostgreSQL sur votre système RHEL 8 / CentOS 8, le programme d'installation crée également automatiquement un nouvel utilisateur par défaut
postgres
.Le mot de passe par défaut pour
postgres
l'utilisateur n'est pas défini, il est donc vide. Pour accéder à la base de données PostgreSQL, exécutez d'abordsu
commande en tant qu'utilisateur root pour passer à l'utilisateur postres. Ensuite, tapezpsql
pour vous connecter à la base de données.REMARQUE
Toute tentative d'accès à la base de données PostgreSQL en tant qu'utilisateur root entraînerapsql: FATAL: role "root" does not exist
message d'erreur.Exemple :
# su - postgres $ psql psql (10.5) Type "help" for help. postgres=#
REMARQUE
Pour quitter le shell de la base de données PostreSQL, tapez\q
ou appuyez surCTRL+d
combinaison de touches.
Accès distant à la base de données PostgreSQL et connexion sécurisée
- Définir le mot de passe pour le
postgres
user.Afin d'accéder à distance au serveur PostreSQL, nous allons d'abord définir un mot de passe pour lepostres
user :# su - postgres $ psql psql (10.5) Type "help" for help. postgres=# \password postgres Enter new password: Enter it again: postgres=# exit postgres-# \q
- Permettre au serveur PostgreSQL d'écouter sur tous les réseaux disponibles. Modifiez le fichier de configuration principal
/var/lib/pgsql/data/postgresql.conf
:# nano /var/lib/pgsql/data/postgresql.conf
Une fois prêt, ajoutez la ligne suivante quelque part à CONNEXIONS ET AUTHENTIFICATION rubrique :
listen_addresses = '*'
AVERTISSEMENT
La configuration ci-dessus permettra à PostreSQL d'écouter sur tous les réseaux disponibles. Il est recommandé de définir des règles plus strictes afin de n'autoriser l'accès à PostgreSQL qu'à partir du ou des réseaux sélectionnés.Utilisez
ss
commande pour confirmer que PostgreSQL écoute sur0.0.0.0
réseau :$ ss -nlt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:111 0.0.0.0:* LISTEN 0 32 192.168.122.1:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128 [::]:111 [::]:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 128 [::]:5432 [::]:*
- Activer l'authentification par mot de passe crypté MD5 :
# echo "host all all 0.0.0.0/0 md5" >> /var/lib/pgsql/data/pg_hba.conf
- Appliquez les changements de configuration de PostgreSQL :
# systemctl restart postgresql
- Ouvrir le port du pare-feu
5432
pour un trafic entrant PostgreSQL distant :# firewall-cmd --zone=public --permanent --add-service=postgresql # firewall-cmd --reload
- Connectez-vous au serveur de base de données PostgreSQL depuis un emplacement distant. Installez d'abord le
psql
Outil client PostgreSQL sur votre hôte distant :RHEL/CENTOS # dnf install postgresql UBUNTU/DEBIAN # apt install postgresql-client
Créez une connexion à distance pour héberger, par exemple.
192.168.1.151
en tant quepostgres
utilisateur et mot de passe utilisateur tels que définis dans l'étape 1 ci-dessus :$ psql -h 192.168.1.151 -U postgres Password for user postgres: psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1), server 10.5) Type "help" for help. postgres=#