PostgreSQL est l’un des systèmes de base de données objet-relationnel les plus populaires, multiplateforme et open-source. Il est robuste, performant et fiable et bénéficie d’une forte communauté.
Il a été créé en 1986 dans le cadre du projet POSTGRES de l’université de Californie à Berkeley, et compte 30 ans de développement actif sur sa plate-forme principale. Ses performances constantes au fil des ans ont prouvé son intégrité, son architecture et son extensibilité pour une utilisation en entreprise. Elle est conforme à la norme ACID et prend en charge de puissants modules complémentaires tels que le populaire Extender de base de données géospatiales PostGIS.
Dans cet article, nous allons couvrir l’installation de PostgreSQL sur les plates-formes courantes.
Commençons donc.
Ubuntu
PostgreSQL est disponible pour toutes les saveurs et versions d’Ubuntu. Vous avez le choix d’installer et d’utiliser la version disponible par défaut avec votre version d’Ubuntu et supportée pendant toute sa durée de vie ou d’utiliser une version spécifique en ajoutant le dépôt PostgreSQL et en l’installant. Nous allons couvrir les deux options ici.
Pour utiliser la version supportée par défaut fournie par le dépôt Ubuntu, exécutez :
sudo apt-get update
$ sudo apt-get -y install postgresql
Le dépôt PostgreSQL Apt supporte les versions LTS actuelles d’Ubuntu, c’est-à-dire 20.04
, 18.04
et 16.04
. Bien qu’ils ne soient pas entièrement supportés, les mêmes paquets fonctionnent également sur les versions non LTS en utilisant la version LTS la plus proche.
Pour utiliser le dépôt apt de PostgreSQL, suivez les étapes suivantes :
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get -y install postgresql
Pour installer une version spécifique du dépôt PostgreSQL, au lieu de postgresql
qui fait référence à la dernière version, spécifiez-la comme postgresql-12
:
sudo apt-get -y install postgresql-12
Le référentiel contient également différents paquets, y compris des modules complémentaires de tiers. Par exemple, les paquets couramment disponibles pour la version 12 de PostgreSQL incluent :
postgresql-client-12 | bibliothèques et binaires clients |
---|---|
postgresql-12 | serveur de base de données principal |
postgresql-contrib-9.x | modules supplémentaires fournis (partie du paquet postgresql-xx à partir de la version 10) |
libpq-dev | bibliothèques et en-têtes pour le développement de frontaux en langage C |
postgresql-server-dev-12 | bibliothèques et en-têtes pour le développement du backend en langage C |
pgadmin4 | utilitaire d’administration graphique pgAdmin 4 |
Une fois l’installation terminée, vous pouvez vérifier l’état du service DB en utilisant la commande suivante :
sudo systemctl status postgresql.service
Pour Ubuntu, après l’installation, le service doit être activé et fonctionner comme suit :
$ sudo systemctl status postgresql.service
● postgresql.service - SGBDR PostgreSQL
Loaded : chargé (/lib/systemd/system/postgresql.service ; enabled ; vendor preset : enabled)
Active : active (exited) since Sun 2021-06-06 16:06:45 UTC ; 46s ago
PID principal : 3364 (code=exited, status=0/SUCCESS)
Tâches : 0 (limite : 1113)
Mémoire : 0B
CGroup : /system.slice/postgresql.service
Jun 06 16:06:45 ubuntu20cloud systemd<x><x><x>[1]</x></x></x>: Démarrage du SGBDR PostgreSQL...
Jun 06 16:06:45 ubuntu20cloud systemd[<x><x><x>1</x></x></x>] : Fini le SGBDR PostgreSQL.
$
CentOS
Comme Ubuntu, les dépôts RHEL/CentOS contiennent également une version spécifique de PostgreSQL, qui est supportée pendant toute la durée de vie du système d’exploitation. Vous pouvez l’installer en utilisant
sudo yum install -y postgresql-server
ou vous pouvez utiliser DNF si vous utilisez CentOS 8.
$ sudo dnf install -y postgresql-server
Exécutez les commandes suivantes après l’installation pour initialiser la base de données, activer le service PostgreSQL et le démarrer :
$ sudo postgresql-setup initdb
sudo systemctl enable postgresql.service
$ sudo systemctl start postgresql.service
Ou pour utiliser les paquets directement à partir des dépôts PostgreSQL yum, nous devons ajouter le dépôt comme suit :
$ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Ensuite, pour installer une version spécifique de PostgreSQL comme la version 13, qui est la dernière version stable au moment de l’écriture de cet article, utilisez :
$ sudo yum install -y postgresql13-server
le dépôt yum contient également d’autres paquets pour PostgreSQL, dont certains importants sont listés ci-dessous :
postgresql-client | bibliothèques et binaires clients |
---|---|
postgresql-server | serveur de base de données principal |
postgresql-contrib | modules supplémentaires fournis |
postgresql-devel | bibliothèques et en-têtes pour le développement en langage C |
Exécutez les étapes suivantes après l’installation pour initialiser la base de données, activer le service PostgreSQL et le démarrer :
$ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
$ sudo systemctl enable postgresql-13
$ sudo systemctl start postgresql-13
Vous pouvez vérifier l’état du service DB en utilisant la commande suivante :
$ sudo systemctl status postgresql.service
● postgresql.service - Serveur de base de données PostgreSQL
Loaded : chargé (/usr/lib/systemd/system/postgresql.service ; activé ; vendor preset : désactivé)
Active : active (running) since Sun 2021-06-06 16:39:35 GMT ; 1min 12s ago
Process : 7011 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS)
Processus : 7005 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
CGroup : /system.slice/postgresql.service
├─7014 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
├─7015 postgres : logger process
├─7017 postgres : checkpointer process
├─7018 postgres : writer process
├─7019 postgres : wal writer process
├─7020 postgres : autovacuum launcher process
└─7021 postgres : stats collector process
Jun 06 16:39:34 centos7cloud systemd<x><x><x>[1]</x></x></x>: Démarrage du serveur de base de données PostgreSQL...
Jun 06 16:39:35 centos7cloud systemd<x><x><x>[1</x></x></x>] : Démarrage du serveur de base de données PostgreSQL.
$
Windows
Les installateurs Windows 32-bit et 64-bit sont disponibles sur le site officiel de PostgreSQL ici.
- Vous pouvez télécharger le binaire approprié en fonction de la version et de l’architecture requises.
- Nous allons télécharger la dernière version disponible, qui est la v13.3 pour la plateforme Windows 64 bits. Une fois le téléchargement terminé, lancez le programme d’installation en double-cliquant dessus.
- Cliquez sur Suivant pour continuer.
- Cliquez sur Suivant pour continuer avec le chemin par défaut ou indiquez votre chemin d’installation personnalisé.
- Vous pouvez conserver les composants sélectionnés par défaut et cliquer sur Suivant pour continuer.
- Ensuite, on vous demande l’emplacement du répertoire de données ; vous pouvez le conserver par défaut, à moins que vous ne disposiez d’un disque ou d’un répertoire distinct dédié à cet effet. Cliquez sur Suivant pour continuer.
- Spécifiez un mot de passe fort qui sera attribué à l’utilisateur
postgres
. Cliquez sur Suivant lorsque vous avez terminé.
- Le port par défaut
5432
devrait convenir dans la plupart des cas. Cliquez sur Suivant pour passer à la page suivante.
- Sélectionnez les paramètres linguistiques de la base de données et cliquez sur Suivant pour continuer.
- Tous les paramètres sélectionnés pour l’assistant d’installation seront listés pour que vous les examiniez et les confirmiez. Si quelque chose doit être modifié, revenez en arrière et modifiez-le ou cliquez sur Suivant pour passer à la page suivante.
- Le programme d’installation vous indiquera qu’il est prêt à procéder à l’installation. Lorsque vous êtes prêt, cliquez sur Suivant pour démarrer l’installation.
- Attendez que l’installation soit terminée. Un message de confirmation s’affiche.
- Une fois l’installation terminée, vous pouvez décocher
Stack Builder
et cliquer sur Finish pour quitter l’assistant d’installation. Cliquez sur le menu Démarrer et recherchezSQL Shell (psql)
, puis cliquez sur son icône pour ouvrir l’interpréteur de commandespsql
.
SQL Shell (psql) s'ouvre et vous permet d'interagir avec votre <a href="https://geekflare.com/fr/postgresql-monitoring-tools/">instance PostgreSQL après avoir spécifié les détails de la connexion</a>. Tous les éléments peuvent être sélectionnés par défaut en appuyant simplement sur <code>Entrée
, à l’exception du mot de passe, pour lequel vous devez saisir le mot de passe spécifié pour l’utilisateurpostgres
lors de l’assistant d’installation. Cela vous amènera à l’invitepostgres=#
.
Connectez-vous à PostgreSQL
Un utilisateur postgres
est créé automatiquement après l’installation, qui a un accès superadmin
à l’instance de la base de données. Sous Linux, en tant qu’utilisateur privilégié, vous pouvez basculer vers ce compte comme suit :
sudo su - postgres
Une fois dans le compte, vous pouvez réinitialiser le mot de passe de l’utilisateur postgres
en procédant comme suit :
$ psql -c "alter user postgres with password 'P@SsW0rdH3r3'"
Ensuite, lancez l’invite PostgreSQL avec psqlas
:
$ psql
Cela vous amènera à l’invite de PostgreSQL :
$ psql
psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1))
Tapez "help" pour obtenir de l'aide.
postgres=#
À cette invite, vous pouvez interagir avec la base de données et effectuer des tâches d’administrateur ou d’utilisateur de la base de données. À titre de démonstration, les étapes suivantes créent une base de données et un utilisateur, puis attribuent des privilèges au nouvel utilisateur pour qu’il puisse travailler sur la nouvelle base de données :
postgres=# CREATE DATABASE geekflaredb ;
CRÉEZ LA BASE DE DONNÉES
postgres=# CREATE USER geekuser WITH ENCRYPTED PASSWORD 'N3wP@33w0rD' ;
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE geekflaredb to geekuser ;
GRANT
postgres=#
Nous pouvons ensuite lister les bases de données à l’aide de la commande \l
:
postgres=# \l
Liste des bases de données
Nom | Propriétaire | Encodage | Collate | Ctype | Privilèges d'accès
------------- ---------- ---------- --------- --------- -----------------------
geekflaredb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres
| | | | postgres=CTc/postgres
| | | geekuser=CTc/postgres
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres
| postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres
| | | | postgres=CTc/postgres
(4 lignes)
postgres=#
Maintenant, vous pouvez simplement vous connecter à une base de données en utilisant :
postgres=# \c geekflaredb
Vous êtes maintenant connecté à la base de données "geekflaredb" en tant qu'utilisateur "postgres".
geekflaredb=#
Résumé
PostgreSQL est l’une des bases de données les plus largement adoptées par les entreprises en raison de sa robustesse, de ses fonctionnalités et de son évolutivité. Il est facile à apprendre et s’efforce d’être compatible avec les normes SQL.
Un tutoriel est disponible pour PostgreSQL sur son site officiel.