Nous allons voir comment installer MariaDB proprement sur un serveur Debian moderne, avec deux approches :
- installer MariaDB depuis les dépôts Debian, solution la plus simple et la plus stable ;
- installer MariaDB depuis le dépôt officiel MariaDB, si l’on veut choisir précisément une branche.
Pour un serveur Debian 13 Trixie classique, la première méthode suffit dans la majorité des cas : Debian fournit déjà MariaDB 11.8, qui correspond à la branche LTS actuelle chez MariaDB. MariaDB liste notamment MariaDB 11.8.6 comme version stable GA récente. MariaDB : latest releases
Méthode recommandée : installer MariaDB depuis Debian
Sur Debian 13 Trixie, le plus simple consiste à utiliser les dépôts Debian officiels.
On met d’abord le système à jour :
sudo apt update
sudo apt upgrade
Puis on installe MariaDB :
sudo apt install mariadb-server mariadb-client
On vérifie ensuite la version installée :
mariadb --version
mariadbd --version
Sur Debian 13, le paquet mariadb-server est actuellement fourni en version 1:11.8.6-0+deb13u1, selon la fiche officielle du paquet Debian. Debian packages : mariadb-server dans Trixie
On vérifie le statut du service :
systemctl status mariadb --no-pager
Si nécessaire, on l’active au démarrage :
sudo systemctl enable --now mariadb
Cette méthode est celle que je recommande pour la plupart des serveurs WordPress, WooCommerce, applications PHP ou sites classiques. Vous bénéficiez des mises à jour de sécurité Debian, sans empiler inutilement des dépôts externes.
Sécuriser l’installation MariaDB
Après l’installation, lancez l’assistant de sécurisation :
sudo mariadb-secure-installation
Selon la version et la distribution, l’assistant peut proposer de :
- définir ou modifier le mot de passe root MariaDB ;
- supprimer les utilisateurs anonymes ;
- désactiver la connexion root distante ;
- supprimer la base de test ;
- recharger les tables de privilèges.
Sur Debian, l’utilisateur root MariaDB peut aussi utiliser l’authentification par socket Unix. Dans ce cas, sudo mariadb suffit souvent pour accéder au shell MariaDB sans mot de passe séparé.
sudo mariadb
On vérifie rapidement :
SELECT VERSION();
Puis :
Votre base de données ralentit tout ?
Tables wp_options surchargées, autoload incontrôlé, requêtes non indexées — une base WordPress mal entretenue finit toujours par plomber les temps de réponse. Je l'audite, je la nettoie, je l'optimise.
Diagnostiquons votre base de données →EXIT;Code language: PHP (php)
Créer une base et un utilisateur
Pour créer une base de données et un utilisateur applicatif, ouvrez MariaDB :
sudo mariadb
Puis exécutez :
CREATE DATABASE example_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'mot-de-passe-long-et-unique';
GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;Code language: PHP (php)
Pour WordPress, utf8mb4 est indispensable aujourd’hui. Cela permet de gérer correctement les emojis, caractères spéciaux, alphabets internationaux, et évite les surprises avec certains contenus.
Vérifier la connexion locale
Testez ensuite la connexion avec le nouvel utilisateur :
mariadb -u example_user -p example_db
Puis :
SHOW DATABASES;
EXIT;Code language: PHP (php)
Si tout fonctionne, votre serveur MariaDB est prêt pour l’application.
Méthode alternative : utiliser le dépôt officiel MariaDB
Si vous voulez choisir une version MariaDB précise, vous pouvez utiliser le dépôt officiel MariaDB.
MariaDB fournit un outil de configuration de dépôt et documente l’ajout de dépôts APT pour Debian 11 Bullseye, Debian 12 Bookworm, Debian 13 Trixie et d’autres distributions. MariaDB Documentation : installing MariaDB .deb files
La méthode moderne consiste à utiliser le script officiel mariadb_repo_setup, qui configure le dépôt et les clés correctement :
curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bashCode language: JavaScript (javascript)
Pour cibler une branche spécifique, par exemple MariaDB 11.8 :
curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-11.8"Code language: JavaScript (javascript)
Puis installez MariaDB :
sudo apt update
sudo apt install mariadb-server mariadb-client
Vérifiez ensuite l’origine des paquets :
apt policy mariadb-server mariadb-client
Je n’utilise cette méthode que si j’ai une raison précise : besoin d’une branche MariaDB spécifique, fonctionnalité absente de la version Debian, contrainte applicative, ou politique d’homogénéité entre plusieurs serveurs.
Quelle branche choisir ?
Pour un serveur de production, je privilégie une branche LTS plutôt qu’une rolling release.
MariaDB distingue plusieurs familles de releases. Les versions LTS conviennent mieux aux environnements où la stabilité et la maintenance à long terme comptent davantage que les nouveautés immédiates. La page des dernières versions MariaDB liste notamment les branches stables récentes comme 11.8, 11.4 et 10.11. MariaDB : latest releases
En pratique :
- serveur Debian classique : version fournie par Debian ;
- besoin d’une branche précise : dépôt officiel MariaDB ;
- production : branche LTS ;
- tests ou lab : rolling release possible ;
- WordPress/WooCommerce : stabilité d’abord, tuning ensuite.
Le dernier dixième de performance ne compense pas une base de données qui change de comportement au mauvais moment. Une base SQL, on aime quand elle est rapide ; on l’aime surtout quand elle est ennuyeuse.
Migration depuis MySQL ou une ancienne version MariaDB
Si vous migrez depuis MySQL ou depuis une ancienne version MariaDB, ne traitez pas l’opération comme une simple installation.
Avant toute migration :
- faites un dump complet ;
- vérifiez que le service s’est arrêté proprement ;
- notez la version source ;
- testez la restauration sur une machine de staging ;
- vérifiez les moteurs de tables ;
- contrôlez les comptes utilisateurs ;
- relisez les notes de version MariaDB.
Les notes de publication de Debian 13 rappellent un point important : les mises à niveau majeures de MariaDB ne fonctionnent de manière fiable qu’après un arrêt propre. MariaDB ne prend pas en charge la récupération d’erreur entre versions majeures ; après un crash avec MariaDB 10.11, par exemple, il faut redémarrer avec les mêmes binaires 10.11 pour terminer la récupération avant de migrer. Notes de publication Debian 13
En clair : avant une montée de version majeure, on s’assure que MariaDB est proprement arrêté et que les tables ne nécessitent pas de recovery.
Sauvegarder les bases avant migration
Pour sauvegarder toutes les bases :
sudo mariadb-dump --all-databases --single-transaction --routines --triggers --events > all-databases-$(date +%Y%m%d-%H%M%S).sqlCode language: JavaScript (javascript)
Pour compresser directement :
sudo mariadb-dump --all-databases --single-transaction --routines --triggers --events \
| gzip > all-databases-$(date +%Y%m%d-%H%M%S).sql.gzCode language: JavaScript (javascript)
Pour une seule base :
mariadb-dump -u example_user -p --single-transaction example_db > example_db.sqlCode language: CSS (css)
Le dump n’est utile que si vous savez le restaurer. Testez donc la restauration sur une machine séparée si la base est importante.
Vérifications après installation
Après installation ou migration, vérifiez l’état du service :
systemctl status mariadb --no-pager
Vérifiez les logs :
journalctl -u mariadb -n 100 --no-pager
Vérifiez la version depuis SQL :
sudo mariadb -e "SELECT VERSION();"Code language: JavaScript (javascript)
Vérifiez les variables principales :
sudo mariadb -e "SHOW VARIABLES LIKE 'character_set_server';"
sudo mariadb -e "SHOW VARIABLES LIKE 'collation_server';"
sudo mariadb -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"Code language: JavaScript (javascript)
Et vérifiez que les sites se connectent correctement.
Configuration de base pour WordPress/WooCommerce
Pour un serveur WordPress ou WooCommerce, la configuration dépend fortement de la RAM disponible, du trafic, du cache objet, et du volume de données.
On peut créer un fichier dédié :
sudo nano /etc/mysql/mariadb.conf.d/90-custom.cnf
Exemple de base raisonnable, à adapter :
[mariadb]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
max_connections = 100
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mariadb-slow.log
long_query_time = 1Code language: JavaScript (javascript)
Ne copiez pas aveuglément ces valeurs sur un serveur avec 1 Go de RAM ou sur une machine qui héberge vingt sites. innodb_buffer_pool_size doit être dimensionné selon la mémoire disponible et le rôle du serveur.
Après modification :
sudo mariadbd --verbose --help > /dev/null
sudo systemctl restart mariadbCode language: JavaScript (javascript)
Si MariaDB ne redémarre pas, relisez les logs :
journalctl -u mariadb -n 100 --no-pager
Ne pas ouvrir MariaDB sur Internet sans raison
Par défaut, pour un serveur web classique, MariaDB doit écouter localement :
bind-address = 127.0.0.1
ou éventuellement sur une IP privée si l’application se trouve sur un autre serveur du même réseau.
Vérifiez l’écoute réseau :
sudo ss -ltnp | grep -E '3306|mariadbd|mysql'Code language: JavaScript (javascript)
Si MariaDB écoute sur 0.0.0.0:3306, assurez-vous que c’est volontaire et que le firewall limite strictement les IPs autorisées.
Commandes utiles
# Installer MariaDB depuis Debian.
sudo apt update
sudo apt install mariadb-server mariadb-client
# Vérifier les versions.
mariadb --version
mariadbd --version
# Statut du service.
systemctl status mariadb --no-pager
# Activer et démarrer MariaDB.
sudo systemctl enable --now mariadb
# Sécuriser l’installation.
sudo mariadb-secure-installation
# Connexion root via socket.
sudo mariadb
# Version SQL.
sudo mariadb -e "SELECT VERSION();"
# Logs.
journalctl -u mariadb -n 100 --no-pager
# Sauvegarde complète.
sudo mariadb-dump --all-databases --single-transaction --routines --triggers --events \
| gzip > all-databases-$(date +%Y%m%d-%H%M%S).sql.gz
# Vérifier l’écoute réseau.
sudo ss -ltnp | grep -E '3306|mariadbd|mysql'Code language: PHP (php)
Mémo rapide
# Méthode recommandée sur Debian 13.
sudo apt update
sudo apt install mariadb-server mariadb-client
# Version installée.
mariadb --version
sudo mariadb -e "SELECT VERSION();"
# Sécurisation.
sudo mariadb-secure-installation
# Service.
sudo systemctl enable --now mariadb
systemctl status mariadb --no-pager
# Créer une base WordPress.
sudo mariadb
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'mot-de-passe-long-et-unique';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
FLUSH PRIVILEGES;
EXIT;
# Dépôt officiel MariaDB si besoin d’une branche précise.
curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-11.8"
sudo apt update
sudo apt install mariadb-server mariadb-clientCode language: PHP (php)
Conclusion
L’ancien article expliquait comment installer MariaDB 10.3 sur Debian Stretch en ajoutant un dépôt externe. Cette méthode a rendu service à l’époque, mais elle n’est plus adaptée à un serveur moderne.
Sur Debian 13 Trixie, le plus simple consiste à installer MariaDB directement depuis les dépôts Debian :
sudo apt install mariadb-server mariadb-client
Cette méthode fournit déjà MariaDB 11.8 dans Debian 13, avec une intégration propre au système.
Si vous devez choisir une branche spécifique, utilisez le dépôt officiel MariaDB avec le script mariadb_repo_setup, plutôt que les anciennes méthodes avec apt-key et dépôts codés à la main.
Enfin, avant toute migration majeure, faites un dump, vérifiez l’arrêt propre du service, testez la restauration, puis surveillez les logs. Une base de données n’est pas un paquet comme les autres : quand elle tousse, tout le site attrape la grippe.
Votre base de données ralentit tout ?
Tables wp_options surchargées, autoload incontrôlé, requêtes non indexées — une base WordPress mal entretenue finit toujours par plomber les temps de réponse. Je l'audite, je la nettoie, je l'optimise.
Diagnostiquons votre base de données →

Bonjour
J’ai essayé tous les tutos et j’échoue toujours lorsqu’il s’agit d’ajouter la clé (suis sous Debian Stretch) ;
apt-key adv –recv-keys –keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
Executing: /tmp/apt-key-gpghome.Y2PYu698pN/gpg.1.sh –recv-keys –keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
gpg: keyserver receive failed: Connexion refusée
ou
apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
Executing: /tmp/apt-key-gpghome.FHZIc7ETpg/gpg.1.sh –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
gpg: keyserver receive failed: Aucun serveur de clefs disponible
Une idée de qu’il se passe ?