Installation et configuration initiale de PostgreSQL

PostgreSQLBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, nous allons installer et effectuer la configuration initiale de PostgreSQL sur la machine virtuelle LabEx. L'objectif est de rendre PostgreSQL opérationnel et de vérifier ses fonctionnalités de base.

Nous commencerons par mettre à jour les listes de paquets et par installer le serveur PostgreSQL ainsi que le paquet postgresql-contrib. Une fois l'installation terminée, nous vérifierons que le service PostgreSQL est en cours d'exécution et qu'il accepte les connexions à l'aide de la commande pg_isready. Enfin, nous explorerons les bases de données par défaut et vérifierons l'état du serveur ainsi que sa configuration de base.

Installer PostgreSQL et vérifier l'installation

Dans cette étape, nous allons installer PostgreSQL sur la machine virtuelle LabEx et vérifier que l'installation a réussi. PostgreSQL est un système de gestion de base de données relationnelle (SGBDR) open-source puissant.

Tout d'abord, mettons à jour les listes de paquets pour les mises à niveau et les nouvelles installations. Ouvrez un terminal dans la machine virtuelle LabEx. Vous pouvez trouver l'icône du terminal sur le bureau.

Exécutez la commande suivante :

sudo apt update

Cette commande met à jour la liste des paquets disponibles et leurs versions, mais elle n'installe ni ne met à niveau aucun paquet. Vous devriez voir une sortie indiquant que les listes de paquets sont en cours de mise à jour.

Ensuite, installez le serveur PostgreSQL et le paquet postgresql-contrib. Le paquet postgresql-contrib fournit des utilitaires et des fonctionnalités supplémentaires souvent utiles.

Exécutez la commande suivante :

sudo apt install postgresql postgresql-contrib -y

Sortie de l'installation de PostgreSQL

L'option -y répond automatiquement "oui" à toutes les invites pendant le processus d'installation. Cette commande téléchargera et installera PostgreSQL et ses paquets associés. Vous verrez beaucoup de texte défiler pendant le téléchargement et l'installation des paquets.

Une fois l'installation terminée, nous devons vérifier que PostgreSQL est en cours d'exécution. PostgreSQL devrait démarrer automatiquement après l'installation.

Pour vérifier l'état du service PostgreSQL, exécutez la commande suivante :

sudo service postgresql status

Nous pouvons également utiliser la commande pg_isready pour vérifier si le serveur PostgreSQL est en cours d'exécution et accepte les connexions.

Exécutez la commande suivante :

pg_isready

Si PostgreSQL est en cours d'exécution, vous devriez voir la sortie suivante :

/var/run/postgresql:5432 - accepting connections

Si PostgreSQL n'est pas en cours d'exécution, vous pourriez voir un message d'erreur tel que :

/var/run/postgresql:5432 - no response

Si vous rencontrez l'erreur "no response", essayez de redémarrer le service PostgreSQL. Vous pouvez essayer la commande suivante :

sudo service postgresql restart

Ensuite, exécutez à nouveau pg_isready pour vérifier l'état.

Sortie de la commande pg_isready confirmant une installation réussie

Si pg_isready affiche "accepting connections", cela confirme que PostgreSQL est correctement installé et en cours d'exécution.

Accéder au shell PostgreSQL (psql)

Dans cette étape, nous allons accéder au shell PostgreSQL, psql, qui est un outil en ligne de commande permettant d'interagir avec les bases de données PostgreSQL. psql vous permet d'exécuter des requêtes SQL, de gérer des bases de données et d'effectuer d'autres tâches administratives.

Par défaut, PostgreSQL crée un utilisateur Unix nommé postgres qui correspond au superutilisateur PostgreSQL. Pour accéder au shell psql, vous pouvez soit basculer vers l'utilisateur postgres, soit utiliser sudo pour exécuter des commandes en tant qu'utilisateur postgres.

Tout d'abord, basculons vers l'utilisateur postgres. Exécutez la commande suivante :

sudo -i -u postgres

Cette commande bascule l'utilisateur actuel vers postgres. Vous remarquerez que l'invite de commande change pour refléter le nouvel utilisateur.

Maintenant que vous êtes connecté en tant qu'utilisateur postgres, vous pouvez accéder au shell psql. Exécutez la commande suivante :

psql

Cette commande ouvrira le shell psql. Vous devriez voir une invite qui ressemble à ceci :

postgres=#

Cela indique que vous êtes connecté au serveur PostgreSQL et que vous pouvez maintenant exécuter des commandes SQL.

Pour quitter le shell psql, tapez \q et appuyez sur Entrée :

postgres=## \q

Cela vous ramènera au shell de l'utilisateur postgres.

Pour quitter le shell de l'utilisateur postgres et revenir à votre utilisateur d'origine (labex), tapez exit et appuyez sur Entrée :

exit

Alternativement, vous pouvez accéder directement au shell psql en tant qu'utilisateur labex en utilisant sudo. Cela évite d'avoir à changer d'utilisateur.

Exemple d'exécution de la commande psql

Exécutez la commande suivante :

sudo -u postgres psql

Cette commande exécute la commande psql en tant qu'utilisateur postgres. Vous serez directement connecté au shell psql.

Encore une fois, pour quitter le shell psql, tapez \q et appuyez sur Entrée :

postgres=## \q

Cela vous ramènera au shell de l'utilisateur labex.

En résumé, vous avez appris deux façons d'accéder au shell psql : basculer vers l'utilisateur postgres et utiliser sudo. Les deux méthodes aboutissent au même résultat, mais l'utilisation de sudo peut être plus pratique dans certains cas.

Explorer les bases de données par défaut

Dans cette étape, nous allons explorer les bases de données par défaut créées lors de l'installation de PostgreSQL. Ces bases de données fournissent des fonctionnalités essentielles et des informations sur le serveur PostgreSQL.

Tout d'abord, accédez au shell psql en tant qu'utilisateur postgres. Vous pouvez utiliser la commande suivante :

sudo -u postgres psql

Une fois dans le shell psql, vous pouvez lister les bases de données disponibles à l'aide de la commande \l. Exécutez la commande suivante :

postgres=## \l

Cette commande affichera une liste des bases de données, ainsi que des informations sur leurs propriétaires, leurs encodages et leurs privilèges d'accès. Vous devriez voir au moins trois bases de données :

  • postgres : Il s'agit de la base de données par défaut à laquelle vous vous connectez lorsque vous accédez pour la première fois au shell psql. Elle est souvent utilisée pour les tâches administratives.
  • template0 : Cette base de données est utilisée comme modèle pour créer de nouvelles bases de données. Vous ne devez pas modifier cette base de données.
  • template1 : Il s'agit d'une autre base de données modèle utilisée pour créer de nouvelles bases de données. C'est un modèle standard qui peut être personnalisé.

Liste des bases de données PostgreSQL disponibles

Pour vous connecter à une base de données spécifique, vous pouvez utiliser la commande \c suivie du nom de la base de données. Par exemple, pour vous connecter à la base de données postgres, exécutez la commande suivante :

postgres=## \c postgres

Vous devriez voir un message indiquant que vous êtes maintenant connecté à la base de données postgres :

You are now connected to database "postgres" as user "postgres".

Maintenant que vous êtes connecté à la base de données postgres, vous pouvez explorer son contenu. Par exemple, vous pouvez lister les tables de la base de données à l'aide de la commande \dt :

postgres=## \dt

Cette commande affichera une liste des tables dans la base de données actuelle. Comme la base de données postgres est principalement utilisée pour des tâches administratives, elle peut ne contenir aucune table définie par l'utilisateur.

Vous pouvez également afficher des informations sur la connexion actuelle à la base de données à l'aide de la commande \conninfo :

postgres=## \conninfo

Cette commande affichera des informations telles que le nom de la base de données, l'utilisateur, l'hôte et le port.

Pour vous déconnecter de la base de données actuelle et revenir à la connexion par défaut, vous pouvez utiliser la commande \c sans spécifier de nom de base de données :

postgres=## \c

Cela vous reconnectera à la base de données par défaut, qui est généralement la base de données postgres.

Commande psql se connectant à la base de données postgres

Enfin, quittez le shell psql en tapant \q et en appuyant sur Entrée :

postgres=## \q

Cela vous ramènera au shell de l'utilisateur labex.

Dans cette étape, vous avez appris à lister les bases de données disponibles, à vous connecter à une base de données spécifique et à explorer son contenu à l'aide du shell psql.

Vérifier l'état du serveur et la configuration de base

Dans cette étape, nous allons vérifier l'état du serveur PostgreSQL et explorer quelques paramètres de configuration de base.

Comme mentionné précédemment, étant donné que la machine virtuelle LabEx s'exécute dans un conteneur Docker, les commandes systemctl peuvent ne pas fonctionner comme prévu. Nous utiliserons principalement pg_isready et psql pour vérifier l'état du serveur.

Tout d'abord, revérifions que le serveur PostgreSQL est en cours d'exécution. Exécutez la commande suivante :

pg_isready

Si PostgreSQL est en cours d'exécution, vous devriez voir la sortie suivante :

/var/run/postgresql:5432 - accepting connections

Ensuite, vérifions quelques paramètres de configuration de base à l'aide du shell psql. Accédez au shell psql en tant qu'utilisateur postgres :

sudo -u postgres psql

Une fois dans le shell psql, vous pouvez vérifier la version de PostgreSQL à l'aide de la requête SQL suivante :

SELECT version();

Exécutez cette requête dans le shell psql. Vous devriez voir une sortie similaire à :

                                                                version
----------------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.17 (Ubuntu 14.17-0ubuntu0.22.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit
(1 row)

Cela indique la version de PostgreSQL installée sur le serveur.

Vous pouvez également vérifier l'utilisateur actuel de la base de données :

SELECT user;

La sortie sera :

  user
----------
 postgres
(1 row)

Pour vérifier le nom de la base de données à laquelle vous êtes actuellement connecté, utilisez :

SELECT current_database();

La sortie sera :

 current_database
------------------
 postgres
(1 row)

Pour afficher les paramètres de configuration, vous pouvez utiliser la commande SHOW. Par exemple, pour vérifier le paramètre listen_addresses, qui spécifie les adresses IP sur lesquelles le serveur écoute les connexions, exécutez la commande suivante :

SHOW listen_addresses;

La sortie sera probablement :

 listen_addresses
--------------------
 localhost
(1 row)

localhost indique que le serveur écoute sur l'hôte local.

Un autre paramètre utile à vérifier est port, qui spécifie le numéro de port sur lequel le serveur écoute les connexions :

SHOW port;

La sortie sera :

 port
------
 5432
(1 row)

Cela indique que le serveur écoute sur le port 5432, qui est le port PostgreSQL par défaut.

Sortie du shell psql de PostgreSQL

Enfin, quittez le shell psql en tapant \q et en appuyant sur Entrée :

postgres=## \q

Cela vous ramènera au shell de l'utilisateur labex.

Dans cette étape, vous avez appris à vérifier l'état du serveur PostgreSQL et à explorer quelques paramètres de configuration de base à l'aide de pg_isready et du shell psql.

Résumé

Dans ce laboratoire, nous avons installé le SGBDR PostgreSQL sur la machine virtuelle LabEx en utilisant apt update et apt install postgresql postgresql-contrib -y. L'option -y a été utilisée pour accepter automatiquement les invites pendant l'installation.

Après l'installation, nous avons vérifié que le service PostgreSQL était en cours d'exécution et acceptait les connexions. Comme la machine virtuelle LabEx s'exécute dans un conteneur Docker, nous avons utilisé la commande pg_isready au lieu de systemctl status postgresql pour vérifier l'état du serveur. La sortie attendue de pg_isready lorsque le serveur est en cours d'exécution est /var/run/postgresql:5432 - accepting connections.