Dans ce laboratoire, nous allons installer et effectuer la configuration initiale de PostgreSQL sur la machine virtuelle (VM) LabEx. L'objectif est de faire fonctionner PostgreSQL et de vérifier ses fonctionnalités de base.
Nous commencerons par mettre à jour la liste des paquets et installer le serveur PostgreSQL ainsi que le paquet postgresql-contrib. Après l'installation, nous vérifierons que le service PostgreSQL est en cours d'exécution et qu'il accepte les connexions en utilisant la commande pg_isready. Enfin, nous explorerons les bases de données par défaut et vérifierons l'état du serveur et la configuration de base.
Skills Graph
%%%%{init: {'theme':'neutral'}}%%%%
flowchart RL
postgresql(("PostgreSQL")) -.-> postgresql/PostgreSQLGroup(["PostgreSQL"])
postgresql/PostgreSQLGroup -.-> postgresql/db_setup("Create New Database")
postgresql/PostgreSQLGroup -.-> postgresql/db_access("Connect To Database")
postgresql/PostgreSQLGroup -.-> postgresql/db_status("Check Database Status")
postgresql/PostgreSQLGroup -.-> postgresql/sys_version("Get Server Version")
subgraph Lab Skills
postgresql/db_setup -.-> lab-550900{{"Installation et configuration initiale de PostgreSQL"}}
postgresql/db_access -.-> lab-550900{{"Installation et configuration initiale de PostgreSQL"}}
postgresql/db_status -.-> lab-550900{{"Installation et configuration initiale de PostgreSQL"}}
postgresql/sys_version -.-> lab-550900{{"Installation et configuration initiale de PostgreSQL"}}
end
Installer PostgreSQL et vérifier l'installation
Dans cette étape, nous allons installer PostgreSQL sur la machine virtuelle (VM) LabEx et vérifier que l'installation s'est déroulée avec succès. PostgreSQL est un système de gestion de base de données relationnelle (RDBMS) open-source puissant.
Tout d'abord, mettons à jour la liste des paquets pour les mises à niveau et les nouvelles installations. Ouvrez un terminal dans la VM 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 de leurs versions, mais elle n'installe ni ne met à niveau aucun paquet. Vous devriez voir un message indiquant que la liste des paquets est 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
Le paramètre -y répond automatiquement "oui" à toutes les invitations pendant le processus d'installation. Cette commande téléchargera et installera PostgreSQL et ses paquets associés. Vous verrez beaucoup de messages s'afficher 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 comme celui-ci :
/var/run/postgresql:5432 - no response
Si vous rencontrez l'erreur "no response", essayez de redémarrer le service PostgreSQL. Vous pouvez utiliser la commande suivante :
sudo service postgresql restart
Ensuite, exécutez à nouveau pg_isready pour vérifier l'état.
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 pour interagir avec les bases de données PostgreSQL. psql vous permet d'exécuter des requêtes SQL, de gérer les 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 change l'utilisateur actuel pour 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 puis 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 puis appuyez sur Entrée :
exit
Alternativement, vous pouvez accéder directement au shell psql en tant qu'utilisateur labex en utilisant sudo. Cela évite le besoin de changer d'utilisateur.
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 puis 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 donnent le 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 que vous êtes dans le shell psql, vous pouvez lister les bases de données disponibles en utilisant la commande \l. Exécutez la commande suivante :
postgres=## \l
Cette commande affichera une liste de bases de données, ainsi que des informations sur leurs propriétaires, encodages et privilèges d'accès. Vous devriez voir au moins trois bases de données :
postgres : C'est 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 la création de nouvelles bases de données. Vous ne devriez pas modifier cette base de données.
template1 : C'est un autre modèle de base de données utilisé pour la création de nouvelles bases de données. C'est un modèle standard et peut être personnalisé.
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 en utilisant la commande \dt :
postgres=## \dt
Cette commande affichera une liste des tables de la base de données actuelle. Étant donné que la base de données postgres est principalement utilisée pour les 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 en utilisant 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.
Enfin, quittez le shell psql en tapant \q puis 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 en utilisant le shell psql.
Vérifier le statut du serveur et la configuration de base
Dans cette étape, nous allons vérifier le statut du serveur PostgreSQL et explorer certaines 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 le statut du serveur.
Tout d'abord, vérifions à nouveau 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 certains paramètres de configuration de base en utilisant le shell psql. Accédez au shell psql en tant qu'utilisateur postgres :
sudo -u postgres psql
Une fois que vous êtes dans le shell psql, vous pouvez vérifier la version de PostgreSQL en utilisant 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 montre la version de PostgreSQL installée sur le serveur.
Vous pouvez également vérifier l'utilisateur de base de données actuel :
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 :
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
--------------------
*
(1 row)
Le * indique que le serveur écoute sur toutes les adresses IP disponibles.
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.
Enfin, quittez le shell psql en tapant \q puis 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 le statut du serveur PostgreSQL et à explorer certains paramètres de configuration de base en utilisant pg_isready et le shell psql.
Résumé
Dans ce laboratoire, nous avons installé le SGBDR (Système de Gestion de Base de Données Relationnelles) PostgreSQL sur la machine virtuelle LabEx en utilisant les commandes apt update et apt install postgresql postgresql-contrib -y. Le drapeau -y a été utilisé 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. Étant donné que 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 le statut du serveur. La sortie attendue de pg_isready lorsque le serveur est en cours d'exécution est /var/run/postgresql:5432 - accepting connections.