Skip to Content
Serveur LinuxPartie 11 — Bases de données en prodVue d'ensemble

Partie 11 — Bases de données en prod

⏱️ TL;DR — Ton app tourne, Nginx la sert en HTTPS, elle redémarre toute seule. Il lui manque l’essentiel : un endroit où ranger les données. Cette partie branche une vraie base de production. Tu vas installer PostgreSQL, créer un rôle et une base dédiés à ton app, verrouiller les accès (pg_hba.conf, écoute locale — jamais le port ouvert au monde), connaître l’alternative MySQL/MariaDB, apprendre à faire tenir la base (pooling, quelques réglages, où l’héberger) et surtout à la sauvegarder et restaurer. Fil conducteur : les données sont ce qu’on ne peut PAS perdre. Un serveur, ça se reprovisionne en une heure ; une base perdue sans sauvegarde, c’est fini — clients, cours, comptes, tout.

Le problème qu’on résout

Jusqu’ici, tout ce qu’on a mis en place est remplaçable. Le VPS a brûlé ? On en reprovisionne un et on redéploie le code depuis git en une après-midi. Nginx, systemd, les certificats : reconstructibles à l’identique. La base de données, non. Elle contient les inscriptions, les paiements, les progressions, les messages — ce que personne d’autre ne détient. C’est la seule pièce de ton infra dont la perte est irréversible.

D’où deux exigences qui traversent toute la partie. Un : la base ne doit jamais être accessible depuis Internet — un port 5432 ouvert au monde, c’est une fuite de données à retardement. Deux : la base doit être sauvegardée, et ces sauvegardes doivent être testées, chiffrées, et stockées ailleurs que sur le VPS. Le reste (installer, tuner) est de la mécanique ; ces deux points sont de la survie.

Ce que tu sauras faire à la fin de cette partie

  • Installer PostgreSQL sur ton VPS, créer un rôle applicatif et une base dédiés, t’y connecter avec psql et depuis ton app via une chaîne de connexion.
  • Sécuriser l’accès : comprendre listen_addresses, écrire des règles pg_hba.conf correctes, et ne jamais exposer le port de la base à Internet.
  • Installer et durcir l’alternative MySQL/MariaDB (mysql_secure_installation), et savoir quand choisir l’une ou l’autre.
  • Faire tenir la base sous charge : pooling de connexions, réglages mémoire clés (avec méthode, pas valeurs magiques), et arbitrer base locale vs base managée.
  • Sauvegarder, automatiser et restaurer : pg_dump/mysqldump, cron, rotation, offsite, chiffrement — et tester la restauration.

Les chapitres

#ChapitreEn un mot
11.1Installer PostgreSQLLe service, le rôle applicatif, la base, psql.
11.2Accès & pg_hbaÉcoute locale, pg_hba.conf, ne jamais exposer le port.
11.3MySQL / MariaDBL’alternative, le durcissement, quand la choisir.
11.4Tuning & connexionsPooling, réglages clés, locale vs managée.
11.5Sauvegardes de baseDump, cron, offsite, chiffrement, restaurer.

Cette partie branche le cœur de données de ton app, en local et en sécurité. La Partie 12 — Docker & conteneurs montrera ensuite comment reproduire cet environnement (app + base) de façon portable et jetable.


On commence par le plus courant en prod moderne : Installer PostgreSQL.

Last updated on