custom background image

Comment installer une base de données PostgreSQL sur Ubuntu 22.04 ?


Installer une base de données PostgreSQL sur Ubuntu 22.04

Objectif

PostgreSQL est l'une des bases de données les plus utilisées dans le monde. Sa simplicité d'utilisation et son approche open source sont autant d'éléments majeurs qui expliquent son adoption internationale. Pour en savoir plus sur les capacités de PostgreSQL, consultez la documentation officielle.

Dans ce tutoriel, nous allons apprendre à installer une base de données PostgreSQL sur le système de distribution Linux Ubuntu 22.04.

 

Exigences

Pour suivre ce tutoriel, vous devez disposer de la version 22.04 d'Ubuntu et l'exécuter sur une Instance Compute OVHcloud, par exemple. Quelques connaissances de base sur son fonctionnement sont également nécessaires. Si vous ne disposez pas d'Ubuntu 22.04, suivez ce guide pour utiliser une Instance Compute OVHcloud.

 

Instructions

Dans ce tutoriel, vous allez commencer par installer une base de données PostgreSQL, puis vous allez créer votre propre base de données à partir de la première.

 

Installation de la base de données PostgreSQL

Au moment de la rédaction de ce tutoriel, la dernière version de PostgreSQL est la version 14.x. N'hésitez pas à consulter la documentation officielle, partie téléchargements, pour des versions plus anciennes ou plus récentes.

Pour installer PostgreSQL sur Ubuntu, le moyen le plus simple est d'utiliser la commande apt-get :

sudo apt-get -y install postgresql-14

Le résultat s'affiche comme ceci :

$ sudo apt-get -y install postgresql-14

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libcommon-sense-perl libjson-perl libjson-xs-perl libllvm14 libpq5 libsensors-config libsensors5 libtypes-serialiser-perl postgresql-client-14
  postgresql-client-common postgresql-common ssl-cert sysstat
Suggested packages:
  lm-sensors postgresql-doc-14 isag
The following NEW packages will be installed:
  libcommon-sense-perl libjson-perl libjson-xs-perl libllvm14 libpq5 libsensors-config libsensors5 libtypes-serialiser-perl postgresql-14 postgresql-client-14
  postgresql-client-common postgresql-common ssl-cert sysstat
0 upgraded, 14 newly installed, 0 to remove and 0 not upgraded.
Need to get 42.4 MB of archives.
After this operation, 161 MB of additional disk space will be used.
Get:1 http://nova.clouds.archive.ubuntu.com/ubuntu jammy/main amd64 libcommon-sense-perl amd64 3.75-2build1 [21.1 kB]
...
update-alternatives: using /usr/share/postgresql/14/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3) ...
Scanning processes...                                                                                                                                                     
Scanning linux images...                                                                                                                                                  

Running kernel seems to be up-to-date.

No services need to be restarted.

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.

Remarque : le package Ubuntu contient le CLI psql.

Ensuite, vous pouvez tester votre nouvelle installation :

sudo su - postgres postgres@ubuntu-machine:~$ psql

Le résultat s'affiche comme ceci :

$ sudo su - postgres

postgres@tutos-ugc:~$ psql

psql (14.2 (Ubuntu 14.2-1ubuntu1))
Type "help" for help.

postgres=# exit

postgres@tutos-ugc:~$

Remarque : par défaut, l'installation de PostgreSQL crée un compte postgres. Il s'agit d'un compte super utilisateur pour la base de données. Faites attention lorsque vous l'utilisez. Les prochaines sections vous guident dans la création d'utilisateurs standard.

 

Ajout d'un utilisateur à PostgreSQL

Il existe deux manières d'ajouter un utilisateur dans PostgreSQL : les requêtes SQL et l'utilisation d'une commande bash. Dans ce tutoriel, nous nous pencherons uniquement sur la méthode SQL, qui est plus complète. Pour utiliser cette commande, consultez la documentation officielle. Vous devez utiliser le compte par défaut de postgres et le CLI psql pour créer votre nouveau compte (voir ci-dessus pour vous connecter à psql).

Commencez par créer un rôle (une sorte de combinaison d'utilisateurs et de droits dans l'univers PostgreSQL) :

postgres=# CREATE USER foo WITH PASSWORD 'bar';

Le résultat s'affiche comme ceci :

postgres=# CREATE USER foo WITH PASSWORD 'bar';
CREATE ROLE
postgres=#

 

Création d'une base de données

Lorsque vous créez une base de données, vous pouvez en définir le propriétaire :

postgres=# CREATE DATABASE example OWNER foo

Le résultat s'affiche comme ceci :

postgres=# CREATE DATABASE example OWNER foo
CREATE DATABASE
postgres-# 

Ensuite, pour que votre nouvel utilisateur soit utilisable, vous devez créer un utilisateur Linux équivalent (les privilèges root sont obligatoires pour ce type de commande) :

adduser foo

Le résultat s'affiche comme ceci :

$ sudo su -
$ root@tutos-ugc:~# adduser foo
Adding user `foo' ...
Adding new group `foo' (1001) ...
Adding new user `foo' (1001) with group `foo' ...
Creating home directory `/home/foo' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for foo
Enter the new value, or press ENTER for the default
	Full Name []: Foo Bar
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] Y
$ root@tutos-ugc:~# exit

Vous pouvez maintenant tester votre nouveau compte :

sudo su - foo psql -d example

Le résultat s'affiche comme ceci :

ubuntu@tutos-ugc:~$ sudo su - foo
foo@tutos-ugc:~$ psql -d example
psql (14.2 (Ubuntu 14.2-1ubuntu1))
Type "help" for help.

example=> 

N'hésitez pas à dresser une liste de vos bases de données pour vérifier que tout fonctionne :

postgres=# \l

Le résultat s'affiche comme ceci :

postgres=# \l
                              List of databases
   Name    |  Owner   | Encoding | Collate |  Ctype  |   Access privileges   
-----------+----------+----------+---------+---------+-----------------------
 example   | foo      | UTF8     | C.UTF-8 | C.UTF-8 | 
 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)

 

Création et utilisation d'un tableau

À ce stade, vous pouvez créer des tableaux et les utiliser.

Pour les commandes suivantes, servez-vous de l'utilisateur foo que vous venez de créer.

example=> CREATE TABLE first_table (id INT PRIMARY KEY NOT NULL, column1 CHAR(50));

Le résultat s'affiche comme ceci :

example=> CREATE TABLE first_table (id INT PRIMARY KEY NOT NULL, column1 CHAR(50));
CREATE TABLE
example=> 

Utilisez la commande first_table dans les requêtes SQL :

example=> INSERT INTO first_table (id, column1) VALUES (1, 'example'); example=> SELECT * FROM first_table;

Le résultat s'affiche comme ceci :

example=> INSERT INTO first_table (id, column1) VALUES (1, 'example');
INSERT 0 1

example=> SELECT * FROM first_table;
 id |                      column1                       
----+----------------------------------------------------
  1 | example                                           
(1 row)

Félicitations, vous venez d'installer et de configurer une base de données PostgreSQL sur Ubuntu 22.04 !

Aller plus loin

Consultez les offres de base de données managée PostgreSQL et d'instance Public Cloud chez OVHcloud.