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.