Tutoriels gratuits et ouverts à toutes et à tous · conçus au Lycée Chevrollier — AngersÀ propos

Installer et sécuriser MariaDB sur Debian 12

Préparer la machine, installer le serveur MariaDB, le sécuriser et créer un premier utilisateur applicatif.

Bases de données✎ B. Jousseaume📅 6 octobre 2026⏱ 1 h 30📶 Débutant

Préparer la machine

Avant d’installer un service, on vérifie toujours l’identité et la connectivité du serveur. Une erreur à cette étape (mauvais nom, pas de DNS) provoque des problèmes difficiles à diagnostiquer plus tard.

Nom de la machine

hostname        # nom court
hostname -f     # nom complet (FQDN)
cat /etc/hosts

Le fichier /etc/hosts doit associer l’adresse IP du serveur à son nom complet, par exemple :

127.0.0.1       localhost
192.168.10.20   srv-bdd.sio.local   srv-bdd

Réseau et mises à jour

ip -br a                 # adresses IP, format court
ip route                 # passerelle par défaut
ping -c 2 deb.debian.org # résolution DNS + accès Internet
sudo apt update && sudo apt full-upgrade -y

Installer MariaDB

sudo apt install -y mariadb-server
sudo systemctl status mariadb --no-pager

Le service doit être active (running). Vérifiez la version et le port d’écoute :

mariadb --version
sudo ss -tlnp | grep 3306

Sécuriser l’installation

Le script de sécurisation

sudo mariadb-secure-installation
Question poséeRéponse conseilléePourquoi
Switch to unix_socket authenticationn (déjà actif sous Debian)root se connecte via le compte système
Change the root passwordninutile avec unix_socket
Remove anonymous usersYcomptes sans mot de passe
Disallow root login remotelyYroot uniquement en local
Remove test databaseYbase accessible à tous
Reload privilege tablesYapplique les changements

Limiter l’écoute réseau

Dans /etc/mysql/mariadb.conf.d/50-server.cnf, vérifiez la ligne :

bind-address = 127.0.0.1

Si une application installée sur une autre machine doit se connecter, on remplace par l’IP du serveur et on filtre le port 3306 au pare-feu pour n’autoriser que cette machine.

Créer une base et un utilisateur applicatif

sudo mariadb
CREATE DATABASE gsb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'gsb_app'@'localhost' IDENTIFIED BY 'Un-Mot-De-Passe-Long-Et-Unique!';
GRANT SELECT, INSERT, UPDATE, DELETE ON gsb.* TO 'gsb_app'@'localhost';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'gsb_app'@'localhost';

🧠 Testez vos connaissances

4 questions. Répondez puis cliquez sur « Corriger ». Rien n’est enregistré : c’est de l’auto-évaluation.

1. Quelle commande vérifie le nom complet (FQDN) de la machine ?

💬 hostname -f affiche le nom pleinement qualifié, construit à partir de /etc/hostname et /etc/hosts.

2. Pourquoi lancer mariadb-secure-installation juste après l’installation ?

💬 Le script retire les comptes anonymes, la base test et l’accès root distant : trois portes d’entrée inutiles.

3. Avec bind-address = 127.0.0.1, qui peut se connecter au serveur ?

💬 Le serveur n’écoute que sur la boucle locale : c’est le réglage le plus sûr quand l’application tourne sur le même serveur.

4. Quel privilège donner à l’utilisateur d’une application web ?

💬 Principe du moindre privilège : si l’application est compromise, l’attaquant n’accède qu’à sa base.

© 2026 Bruno Jousseaume. Ce cours est publié sous licence CC BY-NC-SA 4.0 : vous pouvez le partager et l’adapter en citant l’auteur et un lien vers cette page, sans usage commercial, et en partageant vos adaptations sous la même licence.

Pour aller plus loin

Installer et prendre en main DBeaver

Comprendre pourquoi DBeaver expose moins le serveur que phpMyAdmin, autoriser les connexions distantes, puis installer DBeaver, se connecter, explorer la base et exécuter ses premières requêtes.

Débutant⏱ 2 h · 16 octobre 2026