MariaDB
| 🏠 Accueil | 📚 Index | 🐧 Linux | 🌐 Réseau | 🔒 Cybersécurité | 🖥️ Virtualisation | ✅ Checklists d'intervention | 📚 Tutoriels | 🤝 Services |
|---|
🧭 Présentation de MariaDB
MariaDB est un système de gestion de bases de données relationnelles (SGBDR) libre et open source. Issu d'un dérivé de MySQL, il est très utilisé sur les serveurs Linux et dans les environnements d'hébergement web.
Il permet de stocker, organiser et retrouver les données utilisées par des applications comme GLPI, WordPress ou Nextcloud.
Logiciel libre, largement utilisé sur les serveurs.
Adapté aux applications web et à de nombreuses charges de travail.
Utilise largement les outils et commandes de l'écosystème MySQL, avec certaines différences selon les versions.
🏗️ Comment fonctionne MariaDB ?
MariaDB organise les informations dans une structure hiérarchique :
Serveur MariaDB
|
+-- Base de données : glpi
| |
| +-- Table : utilisateurs
| +-- Table : matériels
| +-- Table : tickets
|
+-- Base de données : wordpress
|
+-- Table : articles
+-- Table : commentaires
- Serveur : le service MariaDB qui traite les connexions et les requêtes.
- Base de données : un ensemble organisé de tables.
- Table : des données organisées en lignes et en colonnes.
- Enregistrement : une ligne de données dans une table.
- SQL : le langage utilisé pour interroger et modifier les données.
🧩 Applications utilisant MariaDB
Gestion de parc informatique, inventaire et tickets d'assistance.
Stockage des articles, pages, utilisateurs et paramètres du site.
Stockage des informations nécessaires au fonctionnement de la plateforme.
Possibilité d'exécuter MariaDB dans un conteneur pour des applications auto-hébergées.
🐧 Installation sous Debian / Ubuntu
Les commandes suivantes s'appliquent à un serveur Debian ou Ubuntu utilisant les dépôts de paquets de la distribution.
1. Mettre le système à jour
sudo apt update sudo apt upgrade -y
2. Installer MariaDB
sudo apt install mariadb-server -y
3. Vérifier le service
sudo systemctl status mariadb
Si nécessaire, démarrer le service et activer son démarrage automatique :
sudo systemctl enable --now mariadb
Pour vérifier la version installée :
mariadb --version
💡 Conseil : sur ton serveur, vérifie d'abord si MariaDB est déjà installé avant de lancer une nouvelle installation. Plusieurs applications peuvent utiliser le même serveur de base de données, à condition d'être correctement configurées et isolées par leurs comptes et leurs droits.
🔐 Sécurisation
Après l'installation, lance l'assistant de sécurisation :
sudo mariadb-secure-installation
Selon la version installée, la commande suivante peut également être disponible :
sudo mysql_secure_installation
Cet assistant permet notamment de vérifier plusieurs paramètres de sécurité, par exemple :
- Supprimer les comptes anonymes.
- Limiter les connexions administrateur à distance.
- Supprimer la base de test lorsqu'elle est présente.
- Examiner la configuration d'authentification de l'administrateur.
Les questions exactes peuvent varier selon la version de MariaDB.
Connexion à l'administration
Sur de nombreuses installations Debian/Ubuntu, l'accès administrateur local fonctionne avec :
sudo mariadb
Cette méthode utilise généralement les privilèges système plutôt qu'un mot de passe MariaDB pour le compte `root`.
Pour quitter l'invite SQL :
EXIT;
🧰 Commandes SQL essentielles
Les commandes suivantes s'exécutent dans l'invite MariaDB, après connexion avec `sudo mariadb` ou avec un compte autorisé.
📋 Afficher les bases
SHOW DATABASES;
Affiche les bases accessibles au compte connecté.
➕ Créer une base
CREATE DATABASE test;
Crée une base appelée `test`.
📂 Sélectionner une base
USE test;
Sélectionne la base pour les commandes suivantes.
🗂️ Lister les tables
SHOW TABLES;
Affiche les tables de la base sélectionnée.
Créer une table et manipuler les données
Créer une table d'exemple :
CREATE TABLE utilisateurs (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(100) NOT NULL,
email VARCHAR(190)
);
Ajouter un enregistrement :
INSERT INTO utilisateurs (nom, email)
VALUES ('Pat', 'pat@example.fr');
Afficher les enregistrements :
SELECT * FROM utilisateurs;
Modifier un enregistrement :
UPDATE utilisateurs SET nom = 'Patrick' WHERE id = 1;
Supprimer un enregistrement :
DELETE FROM utilisateurs WHERE id = 1;
⚠️ Attention aux commandes UPDATE et DELETE : sans clause `WHERE`, une commande peut modifier ou supprimer toutes les lignes concernées de la table. Vérifie toujours la cible avant de valider une opération.
👤 Créer un utilisateur et attribuer des droits
Il est préférable de créer un compte dédié à chaque application plutôt que d'utiliser le compte administrateur pour les connexions applicatives.
Dans cet exemple, la base `test` et le compte `appuser` sont des noms de démonstration. Remplace-les par les valeurs adaptées à ton installation.
1. Créer un compte
Dans l'invite MariaDB :
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'Remplacer_Par_Un_Mot_De_Passe_Fort';
2. Accorder les droits nécessaires
GRANT ALL PRIVILEGES ON test.* TO 'appuser'@'localhost';
Cette commande donne des droits étendus sur la base `test`. Pour un environnement de production, accorde uniquement les privilèges nécessaires à l'application.
3. Contrôler les droits
SHOW GRANTS FOR 'appuser'@'localhost';
4. Tester la connexion
Quitte l'invite MariaDB puis lance cette commande dans le terminal Linux :
mariadb -u appuser -p test
Le mot de passe sera demandé. Le compte créé avec l'hôte `localhost` est prévu pour une connexion locale.
💾 Sauvegarde et restauration
La sauvegarde est indispensable avant une mise à jour importante, une migration ou une intervention sur une application.
1. Exporter une base
Dans le terminal Linux, et non dans l'invite SQL :
mariadb-dump -u root -p glpi > glpi.sql
Selon la configuration d'authentification, une sauvegarde administrative locale peut plutôt être réalisée ainsi :
sudo mariadb-dump glpi > glpi.sql
Le fichier `glpi.sql` contient une exportation SQL de la base. Protège-le, car il peut contenir des données sensibles.
2. Restaurer une base existante
mariadb -u root -p glpi < glpi.sql
La base `glpi` doit exister et le compte utilisé doit disposer des droits nécessaires.
Avec l'accès administrateur local :
sudo mariadb glpi < glpi.sql
Important : une restauration peut remplacer ou modifier les données existantes. Fais une sauvegarde préalable et teste la procédure avant toute intervention sur un service en production.
3. Vérifier les fichiers de sauvegarde
ls -lh glpi.sql
Pour des sauvegardes régulières, prévois une copie sur un autre support ou une autre machine. Une sauvegarde conservée uniquement sur le serveur d'origine ne protège pas contre toutes les pannes.
Voir aussi : Sauvegarde.
🛡️ Bonnes pratiques de sécurité
🔑 Comptes et mots de passe
- Utiliser des mots de passe robustes.
- Créer un compte par application.
- Limiter les privilèges.
🌐 Accès réseau
- Éviter l'exposition directe à Internet.
- Limiter les connexions distantes.
- Filtrer les accès avec le pare-feu.
🔄 Maintenance
- Installer les mises à jour adaptées.
- Surveiller les journaux.
- Tester les sauvegardes.
Vérifier l'écoute réseau
Pour examiner les ports en écoute sur le serveur :
sudo ss -lntp
Le port MariaDB par défaut est généralement `3306`. Il ne faut pas supposer que le serveur est accessible depuis l'extérieur : cela dépend de sa configuration réseau, de son adresse d'écoute et du pare-feu.
Consulter l'état du service
sudo systemctl status mariadb
Consulter les journaux du service
sudo journalctl -u mariadb --no-pager -n 50
🔧 Dépannage
❌ MariaDB ne démarre pas
sudo systemctl status mariadb sudo journalctl -u mariadb -n 50
Consulte les messages d'erreur avant de modifier la configuration.
🔒 Accès refusé
Vérifie le nom du compte, son hôte (`localhost` ou autre), son mot de passe et ses privilèges.
SHOW GRANTS;
🔌 Connexion impossible
Vérifie que le service fonctionne, que l'application utilise le bon hôte et port et que les règles réseau autorisent la connexion.
🏠 MariaDB dans un homelab
MariaDB peut être installé directement sur un serveur Linux ou exécuté dans un conteneur. Le choix dépend de l'architecture et des besoins de chaque application.
Exemple d'organisation :
Serveur Ubuntu
|
+-- Apache / PHP
| |
| +-- GLPI
| +-- WordPress
|
+-- MariaDB
|
+-- Base GLPI
+-- Base WordPress
Chaque application doit disposer de son propre compte de base de données et des droits nécessaires. Si MariaDB est partagé, il faut également organiser les sauvegardes et les mises à jour pour éviter d'interrompre plusieurs services.
🧾 Checklist d'administration
- [ ] Vérifier que le service MariaDB fonctionne.
- [ ] Contrôler les comptes et les privilèges.
- [ ] Limiter les accès réseau au strict nécessaire.
- [ ] Installer les mises à jour adaptées.
- [ ] Réaliser des sauvegardes régulières.
- [ ] Tester périodiquement une restauration.
- [ ] Protéger les fichiers de sauvegarde.
- [ ] Contrôler les journaux en cas d'anomalie.
📚 Pages associées
🌐 Écosystème LAMP
LAMP désigne une architecture web classique constituée de :
Système d'exploitation
Serveur web
Base de données
Langage côté serveur
Cette architecture est couramment utilisée pour héberger des applications web auto-hébergées.
