PostgreSQL : installation sur Ubuntu
PostgreSQL est un système de gestion de base de données relationnelle. Ce guide l’installe sur Ubuntu 24.04 et 26.04 et se limite à l’usage en ligne de commande. Les exemples utilisent des noms génériques (boutique, app).
Version fournie par Ubuntu
Section intitulée « Version fournie par Ubuntu »| Ubuntu | Paquet postgresql |
Remarque |
|---|---|---|
| 24.04 | PostgreSQL 16 | Supportée |
| 26.04 | PostgreSQL 18 | Dernière version majeure à la sortie d’Ubuntu 26.04 |
Pour une version plus récente que celle d’Ubuntu (ou pour obtenir la 18 sur Ubuntu 24.04), utiliser le dépôt officiel PGDG (voir plus bas).
Installer
Section intitulée « Installer »sudo apt updatesudo apt install postgresqlLe paquet crée un cluster nommé main (une instance de PostgreSQL avec ses données) et démarre le service.
sudo systemctl status postgresql # service globalpg_lsclusters # clusters : version, port, état, dossier de donnéespsql --versionsudo systemctl enable --now postgresql # démarrage automatiquePremier accès
Section intitulée « Premier accès »PostgreSQL crée un compte système postgres, administrateur de l’instance. Par défaut, la connexion locale se fait par ce compte (authentification peer) :
sudo -u postgres psqlSELECT version();\conninfo\qCréer un utilisateur et une base
Section intitulée « Créer un utilisateur et une base »Voir Rôles et droits. En résumé :
sudo -u postgres createuser --pwprompt app # demande le mot de passesudo -u postgres createdb --owner=app boutiquepsql -h 127.0.0.1 -U app boutique # test de connexion par mot de passeFichiers et emplacements
Section intitulée « Fichiers et emplacements »Remplacer 18 par la version installée (pg_lsclusters).
| Élément | Emplacement |
|---|---|
| Configuration principale | /etc/postgresql/18/main/postgresql.conf |
| Authentification des clients | /etc/postgresql/18/main/pg_hba.conf |
| Données | /var/lib/postgresql/18/main |
| Journal | /var/log/postgresql/postgresql-18-main.log |
| Service du cluster | postgresql@18-main.service |
sudo tail -n 50 /var/log/postgresql/postgresql-18-main.logsudo systemctl restart postgresql@18-mainPar défaut, PostgreSQL n’écoute que sur localhost (listen_addresses = 'localhost'), port 5432.
Dépôt officiel PGDG (versions plus récentes)
Section intitulée « Dépôt officiel PGDG (versions plus récentes) »sudo apt install postgresql-commonsudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh # ajoute le dépôt officielsudo apt install postgresql-18 # version majeure vouluePlusieurs versions majeures peuvent coexister, chacune avec son cluster sur un port différent (pg_lsclusters).
Passer à une version majeure plus récente
Section intitulée « Passer à une version majeure plus récente »Une mise à jour majeure ne se fait pas par apt upgrade : elle migre les données avec les outils de Debian et Ubuntu.
sudo apt install postgresql-18 # installe la nouvelle version (crée un cluster vide)pg_lsclusterssudo pg_dropcluster 18 main --stop # supprime le cluster vide de la nouvelle versionsudo pg_upgradecluster 16 main # migre le cluster 16 vers la dernière version installéepg_lsclusters # vérifier que la nouvelle version tourne sur le port 5432sudo pg_dropcluster 16 main # supprime l'ancien cluster, après vérificationDésinstallation
Section intitulée « Désinstallation »sudo apt purge 'postgresql*'sudo apt autoremoveDépannage
Section intitulée « Dépannage »| Symptôme | Piste |
|---|---|
psql: FATAL: Peer authentication failed for user "app" |
La connexion locale par socket utilise le compte système : ajouter -h 127.0.0.1 pour s’authentifier par mot de passe |
psql: could not connect to server: No such file or directory |
Cluster arrêté : pg_lsclusters, sudo systemctl start postgresql |
Le cluster est down |
sudo tail /var/log/postgresql/postgresql-18-main.log : erreur de configuration, disque plein, port occupé |
FATAL: role "app" does not exist |
Créer le rôle (voir Rôles et droits) |
Ubuntu 24.04 et 26.04 : différences à connaître
Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »Pour aller plus loin
Section intitulée « Pour aller plus loin »- Documentation officielle : postgresql.org/docs
- Suite : Console : le client psql