Comment installer MariaDB sur Ubuntu (20.04 / 22.04 / 24.04) – Guide complet d’installation et de sécurité

目次

Méthode la plus rapide pour installer MariaDB sur Ubuntu (20.04 / 22.04 / 24.04 pris en charge)

Si vous souhaitez commencer à utiliser MariaDB sur Ubuntu immédiatement, suivez simplement les étapes ci-dessous pour terminer l’installation et vérifier le démarrage. À moins d’avoir une raison précise, installer depuis le dépôt par défaut d’Ubuntu est l’option la plus sûre et la plus stable.

① Mettre à jour les informations des paquets

sudo apt update
sudo apt upgrade -y

② Installer MariaDB

sudo apt install -y mariadb-server mariadb-client

Aucune configuration spéciale n’est requise pendant l’installation. Une fois terminée, le service MariaDB démarrera automatiquement.

③ Vérifier que MariaDB fonctionne

sudo systemctl status mariadb

Si active (running) s’affiche, MariaDB fonctionne correctement.

④ Activer le démarrage automatique (généralement non requis mais recommandé de confirmer)

sudo systemctl enable mariadb

⑤ Se connecter à MariaDB et vérifier le fonctionnement

sudo mysql

Si vous voyez l’invite suivante, l’installation a réussi :

MariaDB [(none)]>

Pour quitter, tapez exit;.

Initialisation de sécurité obligatoire après l’installation

Immédiatement après l’installation, MariaDB ne possède que des paramètres de sécurité minimaux. Assurez‑vous d’exécuter la commande suivante :

sudo mysql_secure_installation

En général, les réponses suivantes sont recommandées :

  • Supprimer les utilisateurs anonymes → Y
  • Interdire la connexion root à distance → Y
  • Supprimer la base de données de test → Y
  • Recharger les tables de privilèges → Y

Cela complète la configuration d’un environnement MariaDB sécurisé sur Ubuntu.

Version de MariaDB installée selon la version d’Ubuntu

  • Ubuntu 20.04 → série MariaDB 10.3
  • Ubuntu 22.04 → série MariaDB 10.6
  • Ubuntu 24.04 → série MariaDB 10.11 (LTS)

Pour la plupart des utilisateurs, la version par défaut d’Ubuntu suffit. Ne considérez le dépôt officiel que si vous avez besoin des dernières fonctionnalités.

Vérifications rapides si l’installation échoue ou si le service ne démarre pas

  • Vérifier les erreurs avec sudo systemctl status mariadb
  • Vérifier les journaux détaillés avec sudo journalctl -xe
  • Vérifier l’espace disque avec df -h

Dans la plupart des cas, le problème provient d’un espace disque insuffisant ou d’une faute de frappe dans un fichier de configuration.

Choisir la bonne version de MariaDB pour votre version d’Ubuntu

Lors de l’utilisation de MariaDB sur Ubuntu, l’option la plus sûre dans la plupart des cas est la version du dépôt par défaut. Les mises à jour de sécurité et la compatibilité des dépendances sont maintenues automatiquement, ce qui la rend idéale pour les débutants et les utilisateurs intermédiaires.

Version du dépôt Ubuntu par défaut (recommandée)

  • Ubuntu 20.04 → série MariaDB 10.3
  • Ubuntu 22.04 → série MariaDB 10.6
  • Ubuntu 24.04 → série MariaDB 10.11 (LTS)

À moins d’avoir un besoin spécifique, ces versions sont pleinement utilisables en production.

Si vous avez besoin de la dernière version (ajoutez le dépôt officiel de MariaDB)

Si vous avez besoin des dernières fonctionnalités, vous pouvez ajouter le dépôt officiel de MariaDB. Étant donné que apt-key est obsolète, cela utilise la méthode signed-by.

① Enregistrer la clé GPG

sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL https://mariadb.org/mariadb_release_signing_key.asc \
  | sudo gpg --dearmor -o /etc/apt/keyrings/mariadb.gpg

② Vérifier le nom de code de votre Ubuntu

lsb_release -cs

Exemples :

  • 20.04 → focal
  • 22.04 → jammy
  • 24.04 → noble

③ Ajouter le dépôt officiel (exemple : série 10.11)

echo "deb [signed-by=/etc/apt/keyrings/mariadb.gpg] \
https://mirror.mariadb.org/repo/10.11/ubuntu \
$(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/mariadb.list

④ Mettre à jour les paquets et installer

sudo apt update
sudo apt install mariadb-server mariadb-client

Remarques lors de l’utilisation du dépôt officiel

  • Vous pouvez utiliser des fonctionnalités plus récentes que la version par défaut d’Ubuntu
  • Il existe un risque futur de conflits de dépendances
  • Des tests approfondis sont nécessaires pour les serveurs de production

En production, décidez clairement si vous privilégiez la stabilité ou les dernières fonctionnalités.

Comment vérifier la version actuellement installée de MariaDB

mysql --version

Exemple :

mysql  Ver 15.1 Distrib 10.6.16-MariaDB

En confirmant explicitement la version, le dépannage et les travaux de migration deviennent beaucoup plus faciles.

Guide complet de la configuration initiale de la sécurité MariaDB (mysql_secure_installation)

Immédiatement après l’installation de MariaDB, seules des configurations de sécurité minimales sont appliquées. Pour fonctionner en toute sécurité, assurez‑vous d’exécuter la commande suivante :

sudo mysql_secure_installation

Lors de l’exécution, plusieurs invites apparaîtront. Dans la plupart des cas, les réponses suivantes sont recommandées.

Réponses recommandées

  • Entrez le mot de passe actuel pour root : → Appuyez sur Entrée (non défini lors du premier lancement)
  • Passer à l’authentification unix_socket ? → O (Recommandé sur Ubuntu)
  • Changer le mot de passe root ? → N (Si vous utilisez l’authentification unix_socket)
  • Supprimer les utilisateurs anonymes ? → O
  • Interdire la connexion root à distance ? → O
  • Supprimer la base de test et l’accès à celle‑ci ? → O
  • Recharger les tables de privilèges maintenant ? → O

Cela complète la configuration de sécurité de base.

Pourquoi vous ne pouvez pas vous connecter en tant que root (Erreur d’accès refusé)

Sur Ubuntu, l’utilisateur root utilise par défaut l’authentification unix_socket. Par conséquent, la connexion standard par mot de passe ne fonctionnera pas.

Exemple de symptôme

mysql -u root -p

Accès refusé pour l'utilisateur 'root'@'localhost'

Méthode de connexion correcte (défaut Ubuntu)

sudo mysql

C’est la méthode la plus sûre et recommandée.

Comment changer root pour une authentification par mot de passe (uniquement si nécessaire)

Changez la méthode d’authentification uniquement si vous devez vous connecter en tant que root depuis des outils ou applications externes.

① Se connecter à MariaDB

sudo mysql

② Modifier le plugin d’authentification

ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'StrongPasswordHere';

FLUSH PRIVILEGES;

③ Confirmer le changement

SELECT user, host, plugin FROM mysql.user;

Si mysql_native_password est affiché, le changement a réussi.

Comment vérifier la méthode d’authentification actuelle

sudo mysql -e "SELECT user, host, plugin FROM mysql.user;"

Principales méthodes d’authentification :

  • unix_socket → défaut Ubuntu, sécurisé
  • mysql_native_password → Authentification par mot de passe

Sauf raison spécifique, il est plus sûr de laisser root utiliser l’authentification unix_socket.

Erreurs courantes et solutions

ERREUR 1698 (28000) : Accès refusé pour l’utilisateur ‘root’@’localhost’

  • Cause : Tentative de connexion par mot de passe
  • Solution : Connectez‑vous avec sudo mysql

mysql_secure_installation introuvable

  • Vérifiez avec which mysql_secure_installation
  • Si non installé, exécutez sudo apt install mariadb-server

Définir le jeu de caractères sur utf8mb4 (prévenir le texte corrompu)

Pour gérer en toute sécurité le texte multilingue et les emojis dans MariaDB, il est recommandé d’utiliser utf8mb4. Sans ce réglage, vous pouvez rencontrer des problèmes d’encodage ou des pertes de données.

① Modifier le fichier de configuration

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Ajoutez ou modifiez les lignes suivantes dans la section [mysqld] :

[mysqld]
character-set-server = utf8mb4
collation-server     = utf8mb4_general_ci

② Redémarrer MariaDB

sudo systemctl restart mariadb

③ Vérifier les paramètres

sudo mysql -e "SHOW VARIABLES LIKE 'character_set%';"

Si utf8mb4 est affiché, la configuration a réussi.

Spécifier utf8mb4 lors de la création d’une base de données (recommandé)

Si vous souhaitez définir explicitement le jeu de caractères indépendamment des paramètres globaux, spécifiez‑le lors de la création de la base de données.

CREATE DATABASE sample_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;

Toutes les tables créées dans cette base de données hériteront de utf8mb4.

Créer un utilisateur d’application et accorder les permissions

Dans les environnements de production, n’utilisez jamais l’utilisateur root pour les connexions d’application. Créez un utilisateur dédié et accordez uniquement les privilèges minimum nécessaires.

① Se connecter à MariaDB

sudo mysql

② Créer un utilisateur (connexion locale)

CREATE USER 'app_user'@'localhost'
IDENTIFIED BY 'StrongPasswordHere';

③ Accorder des privilèges à la base de données

GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'localhost';

FLUSH PRIVILEGES;

Créer un utilisateur d’accès distant (uniquement si nécessaire)

Configurez ceci uniquement si vous devez vous connecter depuis un serveur externe ou un environnement cloud.

CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';

GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';

FLUSH PRIVILEGES;

Note : Le caractère générique “%” permet les connexions depuis n’importe quel hôte. Dans les environnements de production, spécifier une adresse IP particulière est plus sûr.

Comment vérifier les utilisateurs et privilèges actuels

SELECT user, host FROM mysql.user;

SHOW GRANTS FOR 'app_user'@'localhost';

Erreurs d’autorisation courantes et solutions

Accès refusé pour l’utilisateur ‘app_user’

  • Spécification d’hôte incorrecte (différence entre localhost et %)
  • FLUSH PRIVILEGES n’a pas été exécuté
  • Nom de base de données incorrect lors de la connexion

Base de données inconnue

  • Faute de frappe dans le nom de la base de données
  • Aucun privilège accordé pour la base de données cible

Comment autoriser les connexions distantes dans MariaDB (corriger lorsque l’accès externe échoue)

Par défaut, MariaDB autorise uniquement les connexions locales. Si vous devez vous connecter depuis un serveur externe ou un environnement cloud, configurez les paramètres suivants.

① Modifier bind-address

Modifiez le fichier de configuration :

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Trouvez la ligne suivante :

bind-address = 127.0.0.1

Pour autoriser les connexions externes, modifiez-la ainsi :

bind-address = 0.0.0.0

Après avoir enregistré, redémarrez MariaDB :

sudo systemctl restart mariadb

② Ouvrir le port 3306 dans le pare-feu

Si vous utilisez UFW sur Ubuntu :

sudo ufw allow 3306
sudo ufw reload

Pour une meilleure sécurité, spécifiez l’adresse IP source :

sudo ufw allow from 192.168.1.10 to any port 3306

③ Créer un utilisateur d’accès distant

CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';

GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';

FLUSH PRIVILEGES;

Pour une meilleure sécurité :

CREATE USER 'app_user'@'192.168.1.10'
IDENTIFIED BY 'StrongPasswordHere';

Liste de contrôle si vous ne pouvez pas vous connecter à distance

1. MariaDB est-il en cours d’exécution ?

sudo systemctl status mariadb

2. Le port 3306 écoute-t-il ?

sudo ss -tulnp | grep 3306

S’il affiche 0.0.0.0:3306, il écoute correctement sur toutes les interfaces.

3. Si vous utilisez un environnement cloud (AWS / GCP / VPS)

  • Assurez-vous que le port 3306 est ouvert dans le groupe de sécurité
  • Confirmez qu’aucun pare-feu externe ne bloque la connexion

4. Causes selon le message d’erreur

Impossible de se connecter au serveur MySQL

  • Le port est fermé
  • bind-address non modifié
  • Le pare-feu bloque la connexion

Accès refusé pour l’utilisateur

  • Spécification d’hôte d’utilisateur incorrecte
  • Mot de passe incorrect
  • Privilèges non accordés

Délai de connexion dépassé

  • Paramètres de sécurité du côté cloud
  • Problèmes de routage réseau

Notes de sécurité importantes

  • Évitez d’utiliser « % » dans les environnements de production
  • Utilisez l’accès VPN chaque fois que possible
  • Envisagez d’activer les connexions SSL/TLS
  • N’autorisez jamais la connexion root à distance

Dépannage lorsque MariaDB ne démarre pas (erreur d’échec)

① Vérifier le statut du service

sudo systemctl status mariadb

② Vérifier les journaux détaillés

sudo journalctl -xe
sudo cat /var/log/mysql/error.log

③ Causes courantes

  • Erreurs de syntaxe du fichier de configuration
  • Espace disque insuffisant
  • Conflit de port (MySQL déjà en cours d’exécution)

④ Vérifier l’espace disque

df -h

Résumé des causes d’erreur d’accès refusé

  • Mot de passe incorrect
  • Spécification d’hôte incorrecte (différence entre localhost et %)
  • FLUSH PRIVILEGES non exécuté
  • Tentative de connexion standard pour root (requiert sudo mysql )

Améliorations de performance de base (pour les débutants)

Un réglage avancé n’est pas requis, mais au minimum, confirmez les paramètres suivants.

① Activer le journal des requêtes lentes

Ajoutez ce qui suit à 50-server.cnf:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2

Redémarrez MariaDB:

sudo systemctl restart mariadb

② Vérifier l’utilisation des index

Les requêtes lentes peuvent manquer d’index appropriés.

EXPLAIN SELECT * FROM sample_table WHERE column_name = 'value';

③ Vérifier les ressources du serveur

top
htop

Si la mémoire est insuffisante, envisagez de mettre à niveau votre plan serveur.

Questions fréquemment posées (FAQ)

Comment verrouiller la version de MariaDB sur Ubuntu 22.04 ?

Utilisez apt-mark hold mariadb-server.

Comment réinitialiser le mot de passe root si je l’ai oublié ?

Vous pouvez le réinitialiser en démarrant en mode sécurisé et en reconfigurant le mot de passe. Consultez notre guide dédié pour les étapes détaillées.

Comment changer le numéro de port de MariaDB ?

Modifiez 50-server.cnf en quelque chose comme port = 3307, puis redémarrez le service.

Conclusion : Utiliser MariaDB en toute sécurité sur Ubuntu

  • Utiliser la version du dépôt par défaut est l’option la plus sûre
  • Exécutez toujours mysql_secure_installation
  • N’utilisez jamais root pour les connexions d’application
  • Activez l’accès distant uniquement si nécessaire
  • Lors du dépannage, la vérification des journaux est la priorité absolue

En suivant ces étapes, vous pouvez créer un environnement MariaDB sécurisé et prêt pour la production sur Ubuntu.