PostgreSQL (souvent abrégé en Postgres) est un système de gestion de base de données relationnelle objet (ORDBMS) mettant l'accent sur l'extensibilité et la conformité aux normes.
Il bénéficie de plus de 30 ans de développement actif et d'une architecture éprouvée qui lui a valu une solide réputation en matière de fiabilité, d'intégrité des données et de performances.
PostgreSQL est publié sous la licence PostgreSQL et est disponible pour Linux, Microsoft Windows, FreeBSD, OpenBSD et macOS.
Dans cet article, nous verrons comment installer PostgreSQL sur Debian 11 / Debian 10.
Ajouter un référentiel PostgreSQL
PostgreSQL publie des packages pour le système d'exploitation Debian via leur référentiel dédié, et les packages de leur référentiel sont plus récents que ceux disponibles dans le référentiel du système d'exploitation.
Tout d'abord, mettez à jour l'index du référentiel à l'aide de apt
commande
sudo apt update
Ensuite, installez le support HTTPS pour apt afin d'obtenir des packages sur Internet.
sudo apt install -y curl apt-transport-https
Maintenant, importez la clé de signature PostgreSQL.
# Debian 11 curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg # Debian 10 curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Enfin, ajoutez les informations du référentiel PostgreSQL au système avec la commande ci-dessous.
# Debian 11 echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list # Debian 10 echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list
Installer PostgreSQL sur Debian
Une fois que vous avez ajouté le référentiel PostgreSQL, exécutez la commande suivante pour mettre à jour l'index du référentiel.
sudo apt update
Ensuite, installez PostgreSQL à l'aide de la commande ci-dessous en fonction de la version de PostgreSQL que vous souhaitez installer.
# PostgreSQL 13 sudo apt install -y postgresql-13 # PostgreSQL 12 sudo apt install -y postgresql-12
À présent, le service PostgreSQL sera opérationnel. Vous pouvez vérifier l'état du service avec la commande ci-dessous.
sudo systemctl status postgresql
Sortie :
● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Wed 2021-09-15 14:19:30 CDT; 42s ago Main PID: 3759 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 2343) Memory: 0B CGroup: /system.slice/postgresql.service Sep 15 14:19:30 debian.itzgeek.local systemd[1]: Starting PostgreSQL RDBMS... Sep 15 14:19:30 debian.itzgeek.local systemd[1]: Started PostgreSQL RDBMS.
Configurer le serveur PostgreSQL
Par défaut, PostgreSQL écoute sur l'hôte local (127.0.0.1), ce que vous ne voudrez peut-être pas toujours car des applications externes peuvent avoir besoin de se connecter à la base de données. Nous allons donc configurer PostgreSQL pour écouter l'adresse IP du système.
# PostgreSQL 13 sudo nano /etc/postgresql/13/main/postgresql.conf # PostgreSQL 12 sudo nano /etc/postgresql/12/main/postgresql.conf
Définissez les listen_addresses
à *
ou <IPAddress>
.
listen_addresses = '192.168.0.10'
Redémarrez le service PostgreSQL.
sudo systemctl restart postgresql
Vous pouvez maintenant utiliser le netstat
commande pour confirmer si PostgreSQL écoute sur le port 5432 ou non.
sudo netstat -antup | grep 5432
Sortie :
tcp 0 0 192.168.0.10:5432 0.0.0.0:* LISTEN 5265/postgres
LIRE :commande netstat introuvable sur Debian – Solution rapide
Accéder à PostgreSQL
Pour gérer la base de données PostgreSQL, vous devrez vous connecter en tant que postgres
(utilisateur Linux) et doivent ensuite accéder au shell de la base de données en utilisant le psql
commande.
sudo -u postgres psql
Sortie :
postgres@server:~$ psql psql (13.4 (Debian 13.4-1.pgdg100+1)) Type "help" for help. postgres=#
Sur psql
shell, exécutez la commande ci-dessous pour modifier le postgres
utilisateur (mot de passe administrateur de la base de données.
postgres=# \password
OU
postgres=# \password postgres
Créer une base de données et un utilisateur PostgreSQL
Tout d'abord, créez un utilisateur de base de données avec la commande ci-dessous.
CREATE USER mydb_user WITH ENCRYPTED PASSWORD 'password';
Ensuite, créez une base de données avec la commande ci-dessous.
CREATE DATABASE mydb WITH OWNER mydb_user;
Ensuite, vous pouvez accorder des privilèges à mydb_user
sur la base de données nouvellement créée.
GRANT ALL PRIVILEGES ON DATABASE mydb TO mydb_user;
Maintenant, vérifiez si l'utilisateur a été créé ou non.
postgres=# \du
Sortie :
postgres=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- mydb_user | | {} postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} postgres=#
En outre, vous pouvez répertorier les bases de données pour voir si votre base de données mydb
a été créé.
postgres=# \l
Sortie :
postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+-----------+----------+-------------+-------------+------------------------- mydb | mydb_user | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/mydb_user + | | | | | mydb_user=CTc/mydb_user postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) postgres=#
Enfin, connectez-vous à mydb
avec l'utilisateur de la base de données mydb_user
.
psql -h localhost -d mydb -U mydb_user
Sortie :
Password for user mydb_user: psql (13.4 (Debian 13.4-1.pgdg110+1)) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for help. mydb=>
Conclusion
C'est tout. J'espère que vous avez appris à installer PostgreSQL sur Debian 11 / Debian 10.