Serveur dédié : installer MariaDB sur Debian 13

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 :

EXIT;Code language: PHP (php)
Distingo, le livret à 2%

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.

Gravatar for Matt Biscay

Je suis Matt Biscay, développeur WordPress & WooCommerce certifié chez Codeable, administrateur système et enseignant.

J’aide les entreprises à créer, optimiser et fiabiliser leurs sites WordPress avec une approche technique propre : performance, sécurité, maintenance, développement sur mesure et résolution de problèmes complexes.

Sur Skyminds, je partage des tutoriels WordPress, WooCommerce, Linux et administration système, avec des solutions testées sur des cas réels et pensées pour durer.

Découvrez mes services WordPress et WooCommerce.

1 pensée sur “Serveur dédié : installer MariaDB sur Debian 13”

  1. 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 ?

    Reply

Opinions