PostgreSQL est l'un des systèmes de bases de données relationnelles objet open source populaires, multiplateformes, robustes, performants et fiables avec une forte communauté.
Elle date de 1986 dans le cadre de la POSTGRE à l'Université de Californie à Berkeley, et réalise 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. Il est conforme à ACID et prend en charge des modules complémentaires puissants tels que l'extension de base de données géospatiale PostGIS.
Nous allons couvrir l'installation de PostgreSQL sur les plates-formes courantes dans cet article.
Alors, commençons.
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 prise en charge pendant sa durée de vie ou d'utiliser une version spécifique en ajoutant le référentiel PostgreSQL et en l'installant. Nous allons couvrir les deux options ici.
Pour utiliser la version prise en charge par défaut fournie par le référentiel d'Ubuntu, exécutez :
$ sudo apt-get update
$ sudo apt-get -y install postgresql
PostgreSQL Apt Repository prend en charge les versions LTS actuelles d'Ubuntu, c'est-à-dire 20.04
, 18.04
et 16.04
. Bien qu'il ne soit pas entièrement pris en charge, les mêmes packages fonctionnent également sur les versions non LTS en utilisant la version LTS la plus proche.
Utiliser Dépôt d'apt PostgreSQL, Suivez ces étapes:
$ 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 à partir du référentiel PostgreSQL, au lieu de simplement postgresql
qui fait référence à la dernière version, spécifiez-le comme postgresql-12
:
$ sudo apt-get -y install postgresql-12
Le référentiel contient également différents packages, y compris des modules complémentaires tiers. Par exemple, les packages couramment disponibles pour la version 12 de PostgreSQL incluent :
postgresql-client-12 | bibliothèques clientes et binaires client |
---|---|
postgresql-12 | serveur de base de données principal |
postgresql-contrib-9.x | modules supplémentaires fournis (partie du package postgresql-xx dans les versions 10 et ultérieures) |
libpq-dev | bibliothèques et en-têtes pour le développement frontal en langage C |
postgresql-server-dev-12 | bibliothèques et en-têtes pour le développement 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 ci-dessous :
$ sudo systemctl status postgresql.service
Pour Ubuntu, après l'installation, le service doit être activé et exécuté comme :
$ sudo systemctl status postgresql.service
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Sun 2021-06-06 16:06:45 UTC; 46s ago
Main PID: 3364 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 1113)
Memory: 0B
CGroup: /system.slice/postgresql.service
Jun 06 16:06:45 ubuntu20cloud systemd[1]: Starting PostgreSQL RDBMS...
Jun 06 16:06:45 ubuntu20cloud systemd[1]: Finished PostgreSQL RDBMS.
$
CentOS
Comme Ubuntu, les référentiels RHEL/CentOS contiennent également une version spécifique de PostgreSQL, qui est prise en charge pendant toute la durée de vie du système d'exploitation. Vous pouvez installer le même 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 ci-dessous 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 packages directement depuis Dépôts yum PostgreSQL, nous devons ajouter le référentiel en tant que :
$ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Et puis pour installer une version spécifique de PostgreSQL comme la version 13, qui est la dernière version stable au moment de la rédaction de cet article, utilisez :
$ sudo yum install -y postgresql13-server
yum repository contient également des packages supplémentaires pour PostgreSQL, dont certains des plus importants sont répertoriés ci-dessous :
client-postgresql | bibliothèques et binaires clients |
---|---|
serveur-postgresql | 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 du langage C |
Exécutez les étapes ci-dessous 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 ci-dessous :
$ sudo systemctl status postgresql.service
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
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)
Process: 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[1]: Starting PostgreSQL database server...
Jun 06 16:39:35 centos7cloud systemd[1]: Started PostgreSQL database server.
$
Windows
Les programmes d'installation Windows 32 bits et 64 bits sont disponibles sur le site officiel de PostgreSQL ici.
- Vous pouvez télécharger le binaire applicable 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 plate-forme 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 spécifiez votre chemin d'installation personnalisé.
- Vous pouvez conserver les composants par défaut sélectionnés et cliquer sur Suivant pour continuer.
- Ensuite, il demande l'emplacement du répertoire de données ; cela peut être conservé par défaut à moins que vous n'ayez un disque ou un répertoire dédié séparé qui lui soit attribué. Cliquez sur Suivant pour continuer.
- Spécifiez un mot de passe fort qui sera attribué à
postgres
utilisateur. Cliquez sur Suivant lorsque vous avez terminé.
- Port par défaut
5432
devrait être bon pour la plupart des cas. Cliquez sur Suivant pour passer à la page suivante.
- Sélectionnez les paramètres régionaux 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 répertoriés pour que vous puissiez les vérifier et les confirmer. 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 montrera qu'il est prêt à procéder à l'installation. Lorsque vous êtes prêt, cliquez sur Suivant pour démarrer l'installation.
- Attendez la fin de l'installation. Une confirmation sera affichée pour le même.
- Une fois terminé, vous pouvez décocher
Stack Builder
et cliquez sur Terminer pour quitter l'assistant d'installation. Cliquez sur le menu Démarrer et recherchezSQL Shell (psql)
et cliquez sur son icône pour ouvrir lepsql
coquille.
SQL Shell (psql) opens up where you can interact with your <a href="https://geekflare.com/postgresql-monitoring-tools/">PostgreSQL instance after specifying the connection details</a>. All of the items can be selected as the default by simply pressing <code>Enter
à l'exception du mot de passe, où vous devez saisir le mot de passe spécifié pourpostgres
utilisateur pendant l'assistant d'installation. Cela vous amènera danspostgres=#
rapide.
Se connecter à PostgreSQL
A postgres
l'utilisateur est créé automatiquement après l'installation, ce qui a superadmin
accès à l'instance de base de données. Sous Linux, en tant qu'utilisateur privilégié, vous pouvez basculer vers ce compte en tant que :
$ sudo su - postgres
Une fois dedans, nous pouvons réinitialiser postgres
mot de passe utilisateur comme :
$ psql -c "alter user postgres with password 'P@SsW0rdH3r3'"
Et puis lancez l'invite PostgreSQL avec psql
comme:
$ psql
Cela vous amènera dans l'invite PostgreSQL :
$ psql
psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1))
Type "help" for help.
postgres=#
À cette invite, vous pouvez interagir avec la base de données et effectuer des tâches d'administration ou d'utilisateur de la base de données. En guise de démonstration, les étapes ci-dessous créent une base de données et un utilisateur, puis attribuent des privilèges au nouvel utilisateur pour travailler sur la nouvelle base de données :
postgres=# CREATE DATABASE geekflaredb;
CREATE DATABASE
postgres=# CREATE USER geekuser WITH ENCRYPTED PASSWORD 'N3wP@33w0rD';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE geekflaredb to geekuser;
GRANT
postgres=#
On peut alors lister les DB en utilisant \l
commander:
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------+----------+----------+---------+---------+-----------------------
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 rows)
postgres=#
Maintenant, vous pouvez simplement vous connecter à une base de données en utilisant :
postgres=# \c geekflaredb
You are now connected to database "geekflaredb" as user "postgres".
geekflaredb=#
Résumé
PostgreSQL est l'un des bases de données dans le monde de l'entreprise en raison de sa robustesse, de ses fonctionnalités et de son évolutivité. Il est facile à apprendre et essaie d'être compatible avec les normes SQL.
Il y a un tutoriel disponible pour PostgreSQL sur son site officiel.